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 :

Accès "sous clé" via regread


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Accès "sous clé" via regread
    Bonjour à toutes et tous.

    Surement une question simple pour certains en vbscript.
    Je voudrais, via REGREAD:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set WshShell = CreateObject("Wscript.Shell")
    REG_UNINSTALL = WshShell.RegRead("HKLM\...\...\CurrentVersion\Uninstall\")
    je voulais savoir s'il y avait une façon de lister toutes les clés se trouvant sous Uninstall. Mon but étant, pour chacunes des clés listées, de vérifier si une clé intitulée DisplayName existe, afin d'en récupérer lavaleur.

    Merci de vos avis éclairés.

    Philippe
    PS:j'ai posté hier, mais pas sur le bon forum.

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    c'est marrant, j'ai bossé la dessus le mois dernier et ca a donné ca :

    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
    strRegKey="HKLM\SYSTEM\ControlSet001\Services\lanmanserver\parameters"
     
    Commande = "cmd /c REG Query " & strRegKey & " /s "
     
    Set objShell = CreateObject("WScript.Shell")
    Set objWshScriptExec = objShell.Exec(Commande)
    Set objStdOut = objWshScriptExec.StdOut
     
    Do Until objStdOut.AtEndOfStream
       strLineX = objStdOut.ReadLine
       I = I + 1
       If I > 4 Then
          MsgBox strLineX
       End If
    Loop
    dans strRegKey tu mets le chemin de ta clé.
    Si tu veux attaquer une machine distante tu fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Commande = "cmd /c REG Query \\" & Nom_de_la_machine_distante & "\" & strRegKey & " /s "
    Si tu veux juste une valeur clé bien particulière, tu fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Commande = "cmd /c REG Query " & strRegKey & " /v nom_de_la_clé"
    voilà au boulot !!

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Accès "sous clé" via regread
    Merci pour cette réponse rapide. Pas de pb, ca tourne. Mais c'est dommage que l'on passe par une commande dos, etque l'on ne puisse pas faire qque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    REG_UNINSTALL = WshShell.RegRead("HKLM\...\...\CurrentVersion\Uninstall\")
     
    For Each objItem in REG_UNINSTALL
    	WScript.Echo objItem
    Next

    mais ton script répond a mon attente.
    Encore merci
    Philippe

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Moi je passais plutot par là pour obtenir des clés dans une bdr :
    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
    Dim result
    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & Adresse_IP & "\root\default:StdRegProv")
    'Adresse_IP contient une chaine de caractère qui est soit une adresse ip ou un nom de machine. En mettant . à la place tu te connecte sur la bdr locale
     
          'Création de la cle list, dans "bootstrap", avec la valeur de la variable Bootstrap
           result = objWMIService.CreateKey (&H80000001,"SOFTWARE\*****\****\BOOTSTRAP")
           If result = 0 Then
              list = Array(Bootstrap) 'Bootstrap est une chaine de caractère.
              result = objWMIService.SetMultiStringValue (&H80000001,"SOFTWARE\*****\*****\BOOTSTRAP", "list", list)
              If result <> 0 Then
                 Err.number = result
                 Err.Description = "Erreur lors de l'affectation de la valeur List (" & Bootstrap & ") à la clé : SOFTWARE\****\*****\BOOTSTRAP\list"
                 ErrorFile Execution_Path, Err
                 Err.clear
              End If
            Else
                Err.number = result
                Err.Description = "Erreur lors de la création de la clé : SOFTWARE\****\*****\BOOTSTRAP\list"
                ErrorFile Execution_Path, Err 'Ici des var et fonction utilisé dans mon prog pour créer un fichier log
                Err.clear
            End If
    Je trouve cela plus simple pour switcher entre une connection locale ou distante.
    Pour te connecter sur une machine distante en gérant l'utilisateur qui se connecte regarde ici :
    http://msdn2.microsoft.com/en-us/library/aa389290.aspx
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    tu peux faire des accès à la base de registre par WMI, voici un exemple du script center :

    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
    On Error Resume Next
     
    strComputer = "."
    Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
        strComputer & "\root\cimv2")
     
    Set colItems = objWMIService.ExecQuery("Select * from Win32_Registry")
     
    For Each objItem in colItems
        Wscript.Echo "Current Size: " & objItem.CurrentSize
        Wscript.Echo "Description: " & objItem.Description
        Wscript.Echo "Install Date: " & objItem.InstallDate
        Wscript.Echo "Maximum Size: " & objItem.MaximumSize
        Wscript.Echo "Name: " & objItem.Name
        Wscript.Echo "Proposed Size: " & objItem.ProposedSize
    Next
    mais disons que ma méthode habituelle est de balancer des commandes Dos, puis de les retravailler ensuite et en plus ca permet à CED600 de dire que c'est de la bidouille , pfffff même pas vrai

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  6. #6
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    CARAMBA encore grillé
    Plus tu pédales moins vite, moins t'avances plus vite.

  7. #7
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    looooooooooooool
    Faut que l'on se synchronise, on répond en même temps là
    Au moins je vois que tu as lu mon super long pavé
    Espérons qu'une autre personne l'ai lu aussi
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  8. #8
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    salut,
    ça rigole bien ici
    my two cents: http://redmondmag.com/columns/articl...itorialsID=566
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/12/2011, 11h30
  2. MyISAM & les accès concurrentiels: le "miracle"
    Par twkjp dans le forum Outils
    Réponses: 3
    Dernier message: 09/09/2005, 17h02
  3. Problème de quotes sous PostGre
    Par Philhz dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 11/07/2004, 13h03

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