[RÉSOLU]Effacer une clé de registre HKCU
Dernière réponse : dans Programmation
J'ai un petit soucis... voici le background :
Nous avons fait un master, créé et paramétré un profil que nous avons ensuite copié dans Default User. Suite à cela, pour chaque nouvel utilisateur, le path de Google Earth est faux dans le registre : il pointe vers "c:\Documents and Settings\Nom_du_profil\Application Data\Google Earth" avec le "Nom_du_profil" en dur et non pas en tant que variable (%username%).
Nous avons remarqué cela récemment, il y a donc passablement de profils créés sur les postes et nous n'allons pas le modifier à chaque fois.
J'ai donc cherché et en suis arrivé au script suivant :
Impossible de deleter la clé "HKEY_CURRENT_USER\Software\Google\Google Earth Plus" du fait des espaces je pense... j'ai donc essayé de concaténer, ben ça marche pas non plus !
Quelqu'un aurait-il une idée ? Là je nage (suis une pive en prog...)
Merci d'avance !
Nous avons fait un master, créé et paramétré un profil que nous avons ensuite copié dans Default User. Suite à cela, pour chaque nouvel utilisateur, le path de Google Earth est faux dans le registre : il pointe vers "c:\Documents and Settings\Nom_du_profil\Application Data\Google Earth" avec le "Nom_du_profil" en dur et non pas en tant que variable (%username%).
Nous avons remarqué cela récemment, il y a donc passablement de profils créés sur les postes et nous n'allons pas le modifier à chaque fois.
J'ai donc cherché et en suis arrivé au script suivant :
Dim WshShell, key
Set WshShell = WScript.CreateObject("WScript.Shell" )
key = "HKEY_CURRENT_USER\Software\Google\Google Earth Plus"
WshShell.RegDelete pkey
Impossible de deleter la clé "HKEY_CURRENT_USER\Software\Google\Google Earth Plus" du fait des espaces je pense... j'ai donc essayé de concaténer, ben ça marche pas non plus !
Quelqu'un aurait-il une idée ? Là je nage (suis une pive en prog...)
Merci d'avance !
Autres pages sur : resolu effacer cle registre hkcu
Lassé par la pub ? Créez un compte
Meilleure solution
Ouaip ! (Avec le peu d'informations que j'ai, bien-sûr)
Ou alors la clef ou une des sous-clef est ouverte par un processus, ce qui empêche que celle-là soit supprimée.
Tu peux vérifier les droits et les processus ?
Concernant l'exploration des clefs et des process, Marc Russinovitch avait un truc du genre RegistreMonitor... Google devrait t'aider (pas le Earth+, ^^)
Ou alors la clef ou une des sous-clef est ouverte par un processus, ce qui empêche que celle-là soit supprimée.
Tu peux vérifier les droits et les processus ?
Concernant l'exploration des clefs et des process, Marc Russinovitch avait un truc du genre RegistreMonitor... Google devrait t'aider (pas le Earth+, ^^)
Ah bah, il manque un backslash !
Remarks
Specify a key-name by ending strName with a final backslash; leave it off to specify a value-name. Fully qualified key-names and value-names are prefixed with a root key. You may use abbreviated versions of root key names with the RegDelete method. The five possible root keys you can use are listed in the following table.
Source: http://msdn.microsoft.com/en-us/library/293bt9hh%28VS.8...
Citation :
Remarks
Specify a key-name by ending strName with a final backslash; leave it off to specify a value-name. Fully qualified key-names and value-names are prefixed with a root key. You may use abbreviated versions of root key names with the RegDelete method. The five possible root keys you can use are listed in the following table.
Source: http://msdn.microsoft.com/en-us/library/293bt9hh%28VS.8...
Salut !
Merci de la réponse et désolé pour la balise manquante....
D'après ce que je lis, voici le script modifié... qui me renvoie la même erreur (Unable to remove reg key, etc etc)
Merci de la réponse et désolé pour la balise manquante....
D'après ce que je lis, voici le script modifié... qui me renvoie la même erreur (Unable to remove reg key, etc etc)
Dim WshShell, pkey
Set WshShell = WScript.CreateObject("WScript.Shell")
pkey = "HKCU\Software\Google\Google Earth Plus\"
WshShell.RegDelete pkey
Problème de droits ou de processus ayant réservé la ressource ?
Vas dans le registre par regedit et crée la clef HKEY_CURENT_USER\Sofware\Gougueul\Google Earth Plus et supprime-la par script :
Ca devrait marcher pour la fausse clef. Alors ?
Vas dans le registre par regedit et crée la clef HKEY_CURENT_USER\Sofware\Gougueul\Google Earth Plus et supprime-la par script :
WScript.CreateObject("WScript.Shell" ).RegDelete "HKCU\Software\Gougueul\Google Earth Plus\"
Ca devrait marcher pour la fausse clef. Alors ?
Ben finalement non...
J'ai regardé et aucun process Google n'est lancé, aucun service, quedal.
Les droits sont ok également. De fait, je peux sans autre supprimer la clé depuis le registre sans soucis, il n'y a que depuis le script que ça ne prend pas, alors qu'il est lancé avec le même compte (admin local du poste)
Le code d'erreur est 8007005. J'ai trouvé ça sur experts-exchange :
Ce qui fonctionne dans le cas de l'exemple parce que cela supprime la clé ET les sous-clés.
Si je trouve quelle est la constante HKCU (par rapport à HKML=&H80000002) Je pense que ça devrait le faire.
J'ai regardé et aucun process Google n'est lancé, aucun service, quedal.
Les droits sont ok également. De fait, je peux sans autre supprimer la clé depuis le registre sans soucis, il n'y a que depuis le script que ça ne prend pas, alors qu'il est lancé avec le même compte (admin local du poste)
Le code d'erreur est 8007005. J'ai trouvé ça sur experts-exchange :
const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\RightFax Fax Printer"
Set objReg = GetObject("winmgmts:\\" & _
strComputer & "\root\default:StdRegProv")
DeleteSubkey strKeypath
wscript.quit
Sub DeleteSubkey(strKeyPath)
'Get a string array of subkeys
objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubkeys
If IsArray(arrSubkeys) Then
'Iterate through each SubKey
For Each strSubkey In arrSubkeys
'Delete any Subkeys that are in the current subkey
DeleteSubkey strKeyPath & "\" & strSubkey
Next
End If
objReg.DeleteKey HKEY_LOCAL_MACHINE, strKeyPath
End Sub
Ce qui fonctionne dans le cas de l'exemple parce que cela supprime la clé ET les sous-clés.
Si je trouve quelle est la constante HKCU (par rapport à HKML=&H80000002) Je pense que ça devrait le faire.
...et j'ai trouvé ^-^'
Voilà le code :
Merci à toi zeb, tu m'as bien guidé !
Voilà le code :
const HKEY_CURRENT_USER = &H80000001
strComputer = "."
strKeyPath = "Software\Google\Google Earth Plus"
Set objReg = GetObject("winmgmts:\\" & _
strComputer & "\root\default:StdRegProv" )
DeleteSubkey strKeypath
wscript.quit
Sub DeleteSubkey(strKeyPath)
'Get a string array of subkeys
objReg.EnumKey HKEY_CURRENT_USER, strKeyPath, arrSubkeys
If IsArray(arrSubkeys) Then
'Iterate through each SubKey
For Each strSubkey In arrSubkeys
'Delete any Subkeys that are in the current subkey
DeleteSubkey strKeyPath & "\" & strSubkey
Next
End If
objReg.DeleteKey HKEY_CURRENT_USER, strKeyPath
End Sub
Merci à toi zeb, tu m'as bien guidé !
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumRegistre hkcu
- ForumScript modifier clé de registre
- ForumExecution automatique clé registre
- ForumClé registre gpo
- ForumClé registre wsus
- ForumClé registre souris
- ForumClé registre poste travail
- ForumImpossible effacer sur clé usb
- ForumClé de registre outlook 2003
- ForumEffacer traces registre
- Voir plus
en forum aussi
Vas me lire le règlement et modifie ton message pour y encadrer ton bout de code avec les balises correctes. )