WMI : clé de registre

pitch6969 Messages postés 57 Date d'inscription vendredi 24 mars 2006 Statut Membre Dernière intervention 2 août 2007 - 4 avril 2007 à 13:44
Tracid83 Messages postés 32 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 23 mai 2007 - 11 avril 2007 à 13:27
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.

4 réponses

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

++
0
pitch6969 Messages postés 57 Date d'inscription vendredi 24 mars 2006 Statut Membre Dernière intervention 2 août 2007
4 avril 2007 à 14:33
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
0
cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007
4 avril 2007 à 15:22
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
0
Tracid83 Messages postés 32 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 23 mai 2007
11 avril 2007 à 13:27
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.
0
Rejoignez-nous