VBS - Récupérer une clé de registre

Résolu
Bonjour,

Tout est dans le titre.
En fait je veux récupérer la clé de registre du proxy de Internet Explorer, voir si mes postes ont tous un proxy de configuré dans leur navigateur.

Les valeurs que je souhaite scanner dans le registre :

- HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ ProxyUnable
- HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ ProxyServer
- HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ AutoConfigURL

Il faut ensuite que j'insère ces valeurs à la fin d'un fichier XML existant qui doit avoir un peu cette gueule :

<IE SETTINGS>
<ProxyEnable>0 ou 1</ProxyEnable>
<ProxyServer>@IP du proxy</ProxyServer>
<AutoConfigURL>http://@IP du serveur/fichier.pac</AutoConfigURL>
</IE SETTINGS>

Je ne connais pas le VBS, donc pas gagné... Si une ame charitable tombe sur ce post... on ne sait jamais :)

5 réponses

  1. Bonjour,

    set c=CreateObject("WScript.Shell" )
    lol = c.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Proxyserver")
    msgbox "Proxy Serveur : " & lol


    Cdlt.
    0
    1. ok merci je viens de tester avec 3 clés et ça fonctionne.
      en revanche, si une des clé n'existe pas, le script plante :s il faudrait donc faire un controle sur l'existance de la clé.

      ensuite, connais tu la fonction qui me permettrait d'écrire cela dans un fichier ?
      0
      1. Pour éviter les erreurs et marquer quelque chose :

        Set fs = CreateObject("Scripting.FileSystemObject" )
        set c=CreateObject("WScript.Shell" )
        
        AutoConfigURL = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL"
        
        If ExisteCle(AutoConfigURL) = true then 
        	AC = c.RegRead(AutoConfigURL)
        Else
        	AC = "Pas configurer"
        End if
        
        msgbox "AutoConfigURL : " & AC
        
        Function ExisteCle( stKey)
        On Error Resume Next
        	Dim WshShell
        	Set WshShell = WScript.CreateObject("WScript.Shell")
        	WshShell.RegRead stKey
        	ExisteCle = (Err = 0)
        End function


        Cdlt.
        0
        1. Salut,

          Bonne poire que je suis, je t'ai fais ton script !

          http://www.cijoint.fr/cjlink.php?file=cj201007/cij8nNdvHh.zip

          Cdlt.

          Ps : n'hésites pas, si besoin d'aide ;)
          0
          1. Bonjour,

            Un grand merci, même si j'ai réussi à m'en sortir avec des exemples de code trouvé sur le net.

            Par contre je usis ennuyé. Le script est exécuté par le compte admin local, et moi je cherche à récupérer ces 3 valeurs pour l'utilisateur en cours de session (différent du compte admin)

            En bref, lorsque j'execute le script, il me retourne rien car le proxy IE du compte admin n'est pas configuré, alorsque l'utilisateur en cours a bien un proxy de configuré.

            Je cherche donc maintenant à améliorer ce script pour le rendre utilisable, à savoir récupérer le SID de l'utilisateur en cours avant de récupérer les clés de registre, et là ça se complique car je ne trouve pas grand chose sur le net ...
            0
            1. Bonjour,

              Je ne comprend pas, car il y a qu'un seul endroit ou se trouve la clé ?

              HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL

              Petite question, ton utilisateur as-t'il les droits de parcourir le registre, c'est peut être pour ça qu'il ne trouve rien !

              Cdlt.
              0
            2. Je rien dis lol ! Je vais voir si je trouve quelque chose :)
              0
            3. OK. merci à toi. De mon coté, toujours rien trouvé :s
              0
            4. En tous cas, je pense que tu vas galérer, car pour trouver le SID ok, mais comment choisir le bon car il peux y avoir plusieurs utilisateurs
              0
            5. Là est la difficulté, je ne veux pas récupérer les SID, mais le SID de l'utilisateur en cours de session.
              Je ne trouve vraiment rien à ce sujet... J'ai trouvé comment récupérer le nom de session de l'utilisateur en cours, mais c'est de son SID que j'ai besoin pour tapper dans le registre
              0