[..] Modifier des valeurs de registre

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

[..] Modifier des valeurs de registre

#1

Message par m4sis »

SAlut!

Voila afin de pouvoir utiliser WAKE on LAN avec mon serveur OCS j'ai besoin de modifier des valeurs dans la base de registre.

Je vous joins un screnn.

La Valeur "PnpCapabilities" a mettre en 38
La clé " WakeUPModeCap" si elle existe selon les modèles est a mettre en 1

Merci d'avance
Fichiers joints
clés registre WoL OCS optiplex 360.jpg
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..]Modifier Des valeurs de registres

#2

Message par mikell »

Regarde la fonction RegWrite() dans le fichier d'aide
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

Re: [..] Modifier des valeurs de registre

#3

Message par m4sis »

Salut,
J'ai essayer mais ca marche pas ...
► Afficher le texte
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Modifier des valeurs de registre

#4

Message par jguinch »

Tu peux ajouter #RequireAdmin en début de script.
L'écriture dans HKLM\System nécessite les droits suffisants et sans doute que l'UAC soit désactivé : est-ce le cas ?

Sinon, pour PnPCapabilities, je pense qu'il faudra enlever les doubles cotes pour la valeur :

Code : Tout sélectionner

RegWrite("HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0007", "PnPCapabilities", "REG_DWORD", 0x00000038)
D'autre part, il faudra faire attention au nom de la clé, car ça ne sera pas forcément 0007 partout. Je te conseil de d'abord lister les clés dans Class, puis regarder pour chaque résultat si le nom de la carte correspond à celui attendu (ou mieux, utiliser le DeviceInstanceID).
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

Re: [..] Modifier des valeurs de registre

#5

Message par m4sis »

Effectivement je viens de me rendre compte que les clés a change sont effectivement pas tous dans "0007"

[quote="jguinch"
D'autre part, il faudra faire attention au nom de la clé, car ça ne sera pas forcément 0007 partout. Je te conseil de d'abord lister les clés dans Class, puis regarder pour chaque résultat si le nom de la carte correspond à celui attendu (ou mieux, utiliser le DeviceInstanceID).[/quote]

Du coup la facon que tu conseilles est je pense la bonne. mais la sa sort de mes competences :( j'ai également vérifié "DeviceInstanceId" qui ne se nomme pas pareil entre les machine mais "MatchingDeviceID".
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Modifier des valeurs de registre

#6

Message par jguinch »

Pour lister les clés, il suffit d'utiliser RegEnumKey (regarde la doc, c'est assez simple).
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
m4sis
Niveau 4
Niveau 4
Messages : 76
Enregistré le : ven. 31 août 2012 13:21
Status : Hors ligne

Re: [..] Modifier des valeurs de registre

#7

Message par m4sis »

► Afficher le texte
J'ai rempalcer par une * mais ca as pas l'air de fonctionner car j'ai environ 400 postes et changer la clé a chaque fois .....

J'ai regarder la valeur WakeUPMode qui est en 3 et qui aurait du passer en 1 mais ca fonctionne pas.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Modifier des valeurs de registre

#8

Message par jguinch »

Code : Tout sélectionner

Local $MatchingDeviceId  = "\Apci"
Local $i = 1

While 1
    Local $key = RegEnumKey("HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}", $i)
    If @error Then ExitLoop
   
    If StringRegExp(RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & $key, "MatchingDeviceId") , $MatchingDeviceId) Then
        RegWrite("HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & $key, "PnPCapabilities", "REG_DWORD", 0x00000038)
        RegWrite("HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & $key, "WakeUpModeCap", "REG_SZ", "1")
        RegWrite("HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\" & $key, "WakeOn", "REG_SZ", "2")
    EndIf
    $i += 1
WEnd
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre