Meilleur auteur de réponses
[Vbscript] : Scruter un nombre inconnu de clé de registre de même niveau

Question
-
Bonjour,
Je souhaite scruter chacune des sous clés se trouvant directement sous la clé suivante
"HKLM\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\GPOList".
Le nombre de sous clés est fonction du nombre de GPO appliquées sur le poste.
Ces sous clés sont nommées par un numéro qui se présente comme suit.
-> GPOList
| --> 0
| --> 1
| --> 2
| --> n
Sous chacune des ces clés il y a une valeur REG_SZ nommée DisplayName dont je voudrais récupérer le contenu.
J'ai essayé plein de morceaux de code du genre de celui ci mais aucun n'a fonctionné dans mon cas.Sub SearchAndPrintKey(root, key, value) Dim strValue oReg.EnumValues HKLM, key, names, types If Not IsNull(names) Then For Each name In names If name = value Then reg.GetStringValue HKLM, key, name, regdata End If Next End If 'value not found in current key => continue search in subkeys oReg.EnumKey root, key, subkeys If Not IsNull(subkeys) Then For Each sk In subkeys strValue = oReg.GetStringValue (root, sk, value) SearchAndPrintKey root, key & "\" & sk, value Next End If End Sub
Quelqu'un aurait il une fonction ou un bloc de code qui fait ceci?
Merci de votre aide
Meilleurs voeux 2014
Orwell
Orwell
Réponses
-
Bonjour,
Ne serait-ce pas simplement un problème de chemin incorrect:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\GPO-List
au lieu de
HKLM\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\GPOList
Marc Lognoul [Infrastructure Expert]
My Site/Mon Site | MyBlog [EN] | Mon Blog [FR] | Twitter | LinkedIn
- Marqué comme réponse G-Orwell lundi 6 janvier 2014 10:12
Toutes les réponses
-
Bonjour.
Essayez la portion de code suivante.
Sub SearchAndPrintKey(root, key, value)
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\"&_
".\root\default:StdRegProv")
result = oReg.EnumKey(root, key, tabNames)
if result <> 0 Then
WScript.Echo "No key found"
Exit Sub
End ifWScript.Echo "NbEntries = " & UBound(tabNames) + 1
for I=0 to UBound(tabNames)
WScript.Echo "key name : " & tabNames(I)
NextEnd Sub
Denis BREAN
Refresh IT Solutions
-
-
Bonjour,
Ne serait-ce pas simplement un problème de chemin incorrect:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\GPO-List
au lieu de
HKLM\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\GPOList
Marc Lognoul [Infrastructure Expert]
My Site/Mon Site | MyBlog [EN] | Mon Blog [FR] | Twitter | LinkedIn
- Marqué comme réponse G-Orwell lundi 6 janvier 2014 10:12
-
Bonjour Marc,
Oui c'était ça, je m'en suis rendu compte ce matin en retrouvant sur le web le morceau de code que j'avais copié et en le réexecutant.
Comme la seule chose qui différait était le chemin de la clé ça m'a mis la puce à oreille.
Merci beaucoup pour votre réponse.
Meilleurs voeux 2014.
Orwell
-
Bonjour,
Merci pour les souhaites, bon 2014 à vous aussi!
Cordialement,
Dan
Dan BAJENARU, MSFT Votez! Appel à la contribution
TechNet Community Support.LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution. -
-
Bonjour
Voici mon code.
Mais comme le faisait remarquer Marc, j'avais fait une erreur en saisissant le chemin d'accès à la clé.
Ca expliquait l'erreur, et malgré plusieurs relectures j'avais omis de vérifier que le chemin était correct.
Dim oReg,strKeyPath Const HKEY_LOCAL_MACHINE = &H80000002 Set WshShell = CreateObject("WScript.Shell") Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\" & userSid & "\GPO-List" oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys For Each subkey In arrSubKeys strData = WshShell.RegRead("HKLM" & "\" & strKeyPath & "\" & subkey & "\DisplayName") Wscript.Echo "GPO " & subkey & " :" & strData Next
Orwell