Ecriture dans la base de registre d'un ordinateur distant

Soyez le premier à donner votre avis sur cette source.

Snippet vu 16 791 fois - Téléchargée 17 fois

Contenu du snippet

Au départ, il s'agissait de corriger une erreur de DNS dans certains journaux d'évènements de machines du réseau (ID 40961, Requête DNS pour prisoner.iana.org).
En fait il fallait passer sur chaque machine pour ajouter ou modifier cette clé du registre.
J'aurais pu le faire par GPO mais j'ai choisi l'option VBScript, plus intéressante.
Donc voici le correctif de cette erreur (merci Microsoft) et par la même occasion le moyen de voir comment on accède au registre de la machine distante.
Je vais écrire une valeur dans le registre et vérifier qu'elle existe.

Source / Exemple :


'=====================================
' Constantes de l'arbre du registre
'-------------------------------------
' HKEY_CLASSES_ROOT 	= &H80000000
' HKEY_CURRENT_USER 	= &H80000001
' HKEY_LOCAL_MACHINE 	= &H80000002
' HKEY_USERS 		= &H80000003
' HKEY_CURRENT_CONFIG 	= &H80000005
'=====================================

'----------------------------------
'Ecriture dans le registre distant
'----------------------------------

HKEY_LOCAL_MACHINE = &H80000002
strComputer = "NomDuPc"
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\"
objReg.CreateKey HKEY_LOCAL_MACHINE, strKeyPath
ValueName = "DisableReverseAddressRegistrations"
dwValue = 1
objReg.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, ValueName, dwValue

'----------------------------------
'Lecture dans le registre distant
'----------------------------------

HKEY_LOCAL_MACHINE = &H80000002
strComputer = "NomDuPc"
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
ValueName = "DisableReverseAddressRegistrations"
objReg.GetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, ValueName, strValue
If IsNull(strValue) Then
    Wscript.echo "valeur de la clé:  La valeur est nulle ou ne peut pas être trouvé"
Else
    Wscript.echo "valeur de la clé: ", strValue
End If

Conclusion :


Je n'ai pas plus commenté la source que ça mais jepense que c'est assez explicite...
J'attends vos commentaires.
Merci

A voir également

Ajouter un commentaire

Commentaires

Bonjour,
J'ai mis ça dans ma macro

HKEY_LOCAL_MACHINE = &H80000002
strComputer = strName
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates\ePolicy Orchestrator\Agent"
ValueName = "LoggedOnUser"
objReg.getStringValue HKEY_LOCAL_MACHINE, strKeyPath, ValueName, strValue
Cells(IntRow, "h").Value = strValue


Mais ma cellule h reste désespérément vide alors que je suis connecté sur le PC distant et qu'il est bien joignable depuis mon pc.
Messages postés
29777
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
338 > Bragga
Bonjour,

1 - Tu parles de VBA ... hors ce snippet est en VBS ...;
Lorsque tu as écris ce code.. as tu ajouté la référence au VBscript dans ton projet VBA ?

2 - Si tu as un souci, vas plutôt poser ta question sur le forum que dans les commentaires de la sources.
Messages postés
3
Date d'inscription
mercredi 30 août 2006
Statut
Membre
Dernière intervention
18 août 2009

Chez moi ca ne marche pas!
est-ce qu'il faut autoriser quelque chose comme la modification du registre à distance sur la machine cible ou quoi?
Messages postés
24
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
19 février 2015

C'est bon j'ai trouvé
On peut lire les REG_SZ avec "objReg.getStringValue"
ca marche nikel!!
Messages postés
78
Date d'inscription
vendredi 4 février 2005
Statut
Membre
Dernière intervention
6 octobre 2008

Je crois de mémoire que l'on ne peut lire que des DWORD à distance (à vérifier)
Test en remplaçant DWORD par REG_SZ partout où il est présent mais je doute... Désolé
Afficher les 16 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.