WMI : clé de registre

Signaler
Messages postés
57
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
2 août 2007
-
Messages postés
32
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
23 mai 2007
-
j'ai trouver un code qui pourrait m'interesser pour récupérer les données des clés de registre en vbs.
Quelqu'un pourrait il m'aider pour le traduire en c#.

const HKEY_LOCAL_MACHINE = &H80000002
const REG_SZ = 1
const REG_EXPAND_SZ = 2
const REG_BINARY = 3
const REG_DWORD = 4
const REG_MULTI_SZ = 7
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" &_
   strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Control\Lsa"
oReg.EnumValues HKEY_LOCAL_MACHINE, strKeyPath,_
   arrValueNames, arrValueTypes
For I=0 To UBound(arrValueNames)
    WScript.Echo "Value Name: " & arrValueNames(I)
    Select Case arrValueTypes(I)
        Case REG_SZ
            WScript.Echo "Data Type: String"
        Case REG_EXPAND_SZ
            WScript.Echo "Data Type: Expanded String"
        Case REG_BINARY
            WScript.Echo "Data Type: Binary"
        Case REG_DWORD
            WScript.Echo "Data Type: DWORD"
        Case REG_MULTI_SZ
            WScript.Echo "Data Type: Multi String"
    End Select
Next

Merci.
A voir également:

4 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Bonjour,
Suivre le lien msdn classe Registry.
Recherche également sur le site, des sources traitant du registre existent.

++
Messages postés
57
Date d'inscription
vendredi 24 mars 2006
Statut
Membre
Dernière intervention
2 août 2007

je veux pouvoir accéder aux clés de registre à distance !!
j'arrive à récupérer des valeurs précise de clés comme par exemple l'état du firewall de windows mais je voudrai lister ce que contiennent les clés. Ce script répond à ma question mais je n'arrive pas à le retranscrire en c#.

Merci
Messages postés
115
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
8 octobre 2007

Un Exemple

ManagementScope scope = new ManagementScope(@"\\localhost\root\cimv2");
query = @"SELECT * FROM Win32_Registry";
ObjectQuery wmiQuery = new ObjectQuery(query);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, wmiQuery);
ManagementObjectCollection coll = searcher.Get();

foreach (ManagementObject obj in coll)
{
         PropertyDataCollection pColl = obj.Properties;
         foreach (PropertyData p in obj.Properties)
         {
              Console.WriteLine(String.Format("{0} {1}", p.Name, p.Value));
         }
         Console.WriteLine("----------------------------------------------------------------");
}

A toi de modifier ta requête pour ne récuper que les infos dont tu souhaites: SELECT * FROM WIN32_REGISTRY WHERE condition
Messages postés
32
Date d'inscription
jeudi 16 février 2006
Statut
Membre
Dernière intervention
23 mai 2007

Voici un autre moyen si wmi ne marche pas :
 RegistryKey environmentKey;
environmentKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, AddressIP).OpenSubKey(DirectReg);
foreach (string subKeyName in environmentKey.GetSubKeyNames())
{
    RegistryKey tempKey = environmentKey.OpenSubKey(subKeyName);
    tempKey.GetValue("???");
}

En espérant que ça t'aide.