IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Lecture et modification d'une clé de registre


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2015
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Lecture et modification d'une clé de registre
    Bonjour,

    Je suis totalement débutant dans le vbs et c'est bien la première fois que je fais un script et je suis assez fière car au moins une des fonctions fonctionne.

    Mon idée de base est de pouvoir lire la clé (dans l'exemple le compte d'autologon), de l'afficher e de pouvoir la modifier avec une inputbox.

    J'arrive à afficher l'inputbox, à afficher la valeur de la clé, mais pas à la modifier.

    Voici le code que j'ai mit (avec ce que j'ai pu trouver sur le net)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim WshShell 
    Set WshShell = WScript.CreateObject("WScript.Shell") 
    mdp = InputBox ("Ancien mot de passe : "& WshShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName") &Chr (13) &Chr (13) &Chr (13) &Chr (13) &"Entrez le nouveau mot de passe :" , "Gestion des mots de passe de session" , "")
    WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName", mdp=""
    Pourriez vous m'aider car la je ne sais pas trop comment récupérer la valeur.

    Merci d'avance.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bonsoir,


    pour l'écriture essai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName", mdp

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 11
    Points
    11
    Par défaut Désactivation UAC vbscript
    Bonjour, je voudrais désactiver l'UAC en supprimant la clé lorsqu'elle est à 1 pour ensuite la recréer mais avec 0.

    Le script fonctionne avec une autre valeur mais pas pour l'UAC, j'aimerai avoir de l'aider pour savoir si mon script comporte des erreurs ou pas. Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Option Explicit
     
    '*** Déclaration des variables
    Dim ObjetRegedit, WshShell
     
    '*** Permet de continuer le script même s'il y a une erreur
    On Error Resume Next
     
    '*** Definition du contenu de la variable
    Set ObjetRegedit = CreateObject("WScript.Shell")
    Set WshShell = WScript.CreateObject("WScript.Shell")
     
    '*** Definition du contenu de la variable "CleRegistre"
    CleRegistre = WshShell.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableUA")
     
    '*** Lecture de la clé de registre et si la valeur est égale à "0"
    '*** Action si "La clé est égale à 0" passer au rajout de la ligne dans le fichier host sinon si "La clé est égale à 1", supprimer 
    '*** la clé puis créer la clé avec la valeur 0
     
    If CleRegistre = "1" then
     
    	'*** Suppression de la clé de registre
    	WshShell.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableUA"
     
    	'*** Création des valeurs et son type "REG_DWORD".
    	WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableUA", "0", "REG_DWORD"
     
    End if
    On Error GoTo 0
     
    '*** Destruction des objets
    Set ObjetRegedit = Nothing
     
    '*** Quitter le script
    WScript.Quit

  4. #4
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 197
    Points
    17 197
    Par défaut
    Salut

    Je ne pas sûr qu'il soit possible de créer/modifier/supprimer ce type de clef.
    Pour autant, je suis sur windows 10 Professionnel et je n'ai pas cette clef EnableUA.
    donc si elle n'existe pas, ta variable = Empty , donc pas de passge dans ta condition IfAutre chose, tu n'as pas déclaré la variable CleRegistre, vue que tu as un On Error Resume Next au moment ou tu lui donnes une valeur, ERREUR: variable non déclarée, mais comme tu as le traitement d'erreur, ben ton programme prend fin sans t'alerter.

    Le code devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Option Explicit
     
    '*** Déclaration des variables
    Dim ObjetRegedit, CleRegistre
     
    '*** Permet de continuer le script même s'il y a une erreur
    On Error Resume Next
     
    '*** Definition du contenu de la variable
    Set ObjetRegedit = CreateObject("WScript.Shell")
     
    '*** recuperation du contenu de la clef, placement dans la variable "CleRegistre"
    CleRegistre = ObjetRegedit.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableUA")
     
    '*** Lecture de la clé de registre et si la valeur est égale à "0"
    '*** Action si "La clé est égale à 0" passer au rajout de la ligne dans le fichier host sinon si "La clé est égale à 1", supprimer
    '*** la clé puis créer la clé avec la valeur 0
     
    If TypeName(CleRegistre) = "Empty" Then
    	MsgBox "Clef registre inexistante"
    	Else
    	If CleRegistre = "1" then
    		'*** Suppression de la clé de registre
    		ObjetRegedit.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableUA"
     
    		'*** Création des valeurs et son type "REG_DWORD".
    		ObjetRegedit.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableUA", "0", "REG_DWORD"
    	End If
    End if
    On Error GoTo 0
     
    '*** Destruction des objets
    Set ObjetRegedit = Nothing
     
    '*** Quitter le script
    WScript.Quit
    Attention rien de garantie, que je l'écris en première ligne.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Je ne sais pas si c'est enableUA ou enableLUA.

    Même avec les modification rien ne change.
    Images attachées Images attachées  

  6. #6
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 197
    Points
    17 197
    Par défaut
    Re

    Avec ce code je parvient bien au message Je suis bien passé dans le If de CleRegistre = 1, j'ai bien la clef EnableUA, mais je n'ai pas voulue la modifier, c'est pourquoi j'ai mis en commentaire le Delete, recréation et valeur à "0"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Option Explicit
     
    '*** Déclaration des variables
    Dim ObjetRegedit, CleRegistre
     
    '*** Permet de continuer le script même s'il y a une erreur
    On Error Resume Next
     
    '*** Definition du contenu de la variable
    Set ObjetRegedit = CreateObject("WScript.Shell")
     
    '*** recuperation du contenu de la clef, placement dans la variable "CleRegistre"
    CleRegistre = ObjetRegedit.RegRead ("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA")
     
    '*** Lecture de la clé de registre et si la valeur est égale à "0"
    '*** Action si "La clé est égale à 0" passer au rajout de la ligne dans le fichier host sinon si "La clé est égale à 1", supprimer
    '*** la clé puis créer la clé avec la valeur 0
     
    If TypeName(CleRegistre) = "Empty" Then
    	MsgBox "Clef registre inexistante"
    	Else
    	MsgBox "Valeur de CleRegistre "& CleRegistre
    	If CleRegistre = "1" then
    		'*** Suppression de la clé de registre
    	'	ObjetRegedit.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA"
     
    		'*** Création des valeurs et son type "REG_DWORD".
    	'	ObjetRegedit.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", "0", "REG_DWORD"
    	MsgBox "Je suis bien passé dans le If de CleRegistre = 1"
    	End If
    End if
    On Error GoTo 0
     
    '*** Destruction des objets
    Set ObjetRegedit = Nothing
     
    '*** Quitter le script
    WScript.QuitQuit
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 11
    Points
    11
    Par défaut vbs suite
    J'obtiens les messages "Valeur de CleRegistre 1" puis Je suis bien passé dans le If de CleRegistre=1 puis une erreur.Nom : 2.png
Affichages : 1392
Taille : 10,5 Ko
    Images attachées Images attachées  

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par BRRNG37 Voir le message
    J'obtiens les messages "Valeur de CleRegistre 1" puis Je suis bien passé dans le If de CleRegistre=1 puis une erreur.Nom : 2.png
Affichages : 1392
Taille : 10,5 Ko
    L'erreur vient du Wscript à la fi du script

  9. #9
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 197
    Points
    17 197
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    '*** Quitter le script
    WScript.QuitQuit
    pas bon, j'ai doublé le Quit, il faut remplacer par WScript.QuiModifies la partie If de cette façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    If TypeName(CleRegistre) = "Empty" Then
    	MsgBox "Clef registre inexistante"
    	Else
    	MsgBox "Valeur de CleRegistre " & CleRegistre
    	If CleRegistre = "1" then
    		'*** Suppression de la clé de registre
    	'	ObjetRegedit.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA"
     
    		'*** Création des valeurs et son type "REG_DWORD".
    	'	ObjetRegedit.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", "0", "REG_DWORD"
            	MsgBox "Je suis bien passé dans le If de CleRegistre = 1, passage à valeur 0 FAIT"
            	Else
            	MsgBox "Je suis bien passé dans le If de CleRegistre = 0, donc pas de modification"
    	End If
    End if
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  10. #10
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    J'obtiens le message comme quoi c'est fait mais ce n'est pas le cas, la valeur est toujours à 1.

    MsgBox "Je suis bien passé dans le If de CleRegistre = 1, passage à valeur 0 FAIT"

  11. #11
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 197
    Points
    17 197
    Par défaut
    Citation Envoyé par BRRNG37 Voir le message
    J'obtiens le message comme quoi c'est fait mais ce n'est pas le cas, la valeur est toujours à 1....
    D’où la première indication/doute de la possibilité de modifier ce type de clef avec du code VBScript, sécurité oblige sinon se serait trop simple.

    Mais d'autre forumeurs passant par là pourront me contre dire.


    Edit:
    dernier essai de cette façon
    ObjetRegedit.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA", "0" sans préciser le type de la valeur.

    Tu peux aussi potasser dans la FAQ: Manipuler la base de registre
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  12. #12
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Donc ce n'est pas possible avec le VBScript.

    J'ai essayé le PowerShell mais je suis complément perdu.

    Arès je suis ouvert à une autre méthode pour contourner l'UAC.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    J'ai trouvé ces commandes.

    Désactivation de l'UAC :

    REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

    Activation de l'UAC :
    REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 1 /f

    Est il possible de les insérer dans un vbscript ?

  14. #14
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2020
    Messages : 13
    Points : 11
    Points
    11
    Par défaut DOS vs VBS
    Vous ne connaissez pas ?

Discussions similaires

  1. Modification d'une clé de registre
    Par nebih dans le forum VBScript
    Réponses: 3
    Dernier message: 22/09/2008, 09h45
  2. Réponses: 3
    Dernier message: 27/08/2006, 19h34
  3. [VB6] Bloquer la modification dans une combo sans être en lecture seule..
    Par malhivertman1 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 10/05/2006, 16h55
  4. [vb.net2003] Modification d'une clé registre [activeProxy]
    Par arnolem dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/11/2005, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo