WMI-uppgifter: Register
WMI-uppgifter för registret skapar och ändrar registernycklar och -värden. Andra exempel finns i TechNet ScriptCenter på https://www.microsoft.com/technet.
Skriptexemplen som visas i det här avsnittet hämtar endast data från den lokala datorn. Mer information om hur du använder skriptet för att hämta data från fjärrdatorer finns i Ansluta till WMI på en fjärrdator.
Följande procedur beskriver hur du kör ett skript.
Så här kör du ett skript
- Kopiera koden och spara den i en fil med tillägget .vbs, till exempel filename.vbs. Kontrollera att textredigeraren inte lägger till ett .txt filnamnstillägg.
- Öppna ett kommandotolksfönster och navigera till katalogen där du sparade filen.
- Skriv cscript filename.vbs i kommandotolken.
- Om du inte kan komma åt en händelselogg kontrollerar du om du kör från en upphöjd kommandotolk. Vissa händelseloggar, till exempel säkerhetshändelseloggen, kan skyddas av användaråtkomstkontroller (UAC).
Not
Som standard visar cscript utdata från ett skript i kommandotolkens fönster. Eftersom WMI-skript kan generera stora mängder utdata kanske du vill omdirigera utdata till en fil. Skriv cscript filename.vbs > outfile.txt i kommandotolken för att omdirigera utdata från filename.vbs skriptet till outfile.txt.
I följande tabell visas skriptexempel som kan användas för att hämta olika typer av data från den lokala datorn.
Hur gör jag... | WMI-klasser eller -metoder | ||||||||
---|---|---|---|---|---|---|---|---|---|
... läsa registernyckelvärden med hjälp av WMI? | Använd klassen StdRegProv, som finns i namnområdet root\default. Du kan inte hämta några instanser av den här klassen eftersom System Registry Provider endast är en metod- och händelseprovider. Du kan dock hämta registerdata via metoder som EnumKey eller EnumValue.
Win32_Registry, som finns i namnområdet root\cimv2, hämtar data om registret som helhet, till exempel hur stort det är.
|
||||||||
... skapa en ny registernyckel? | Använd klassen StdRegProv, som finns i namnområdet root\default och metoden CreateKey.
|
||||||||
... skapa ett nytt registervärde under en nyckel? | Använd klassen StdRegProv, som finns i namnområdet root\default och metoden CreateKey. Använd sedan någon av uppsättningsmetoderna, beroende på vilken registerdatatyp värdet är, till exempel SetDWORDValue-. Set-metoderna skapar ett värde om det inte redan finns. Mer information finns i Mappa en registerdatatyp till en WMI-datatyp.
|
||||||||
... undvika att få ett ogiltigt klassfel när du försöker skriva ett skript för att läsa registret? | Använd namnområdet root\default när du öppnar klassen StdRegProv. StdRegProv inte ingår i cimv2-namnområdet, varför ett "Ogiltig klass"-fel genereras om du försöker ansluta till "root\cimv2:StdRegProv".
|
||||||||
... kontrollera säkerheten för en specifik registernyckel? | Använd klassen StdRegProv, som finns i root\default-namnområdet och metoden CheckAccess. Du kan bara kontrollera åtkomsträttigheterna för den aktuella användaren som kör skriptet eller programmet. Du kan inte kontrollera åtkomsträttigheterna för en annan angiven användare. |
||||||||
... läsa och skriva binära registervärden? | Använd klassen StdRegProv, som finns i namnområdet "Root\Default" och GetBinaryValue och SetBinaryValue metoder. Registervärden som visas i verktyget RegEdt32 som en serie byte hexadecimala värden finns i REG_BINARY dataformat. Mer information finns i Mappa en registerdatatyp till en WMI-datatyp. I följande VBScript-kodexempel skapas en ny nyckel med ett binärt värde. Binärvärdet anges i iValues bytematris som anges i Hex.
Följande skript läser det binära värdet.
|
||||||||
... läsa och skriva registervärden som innehåller flera strängar? | Använd klassen StdRegProv, som finns i root\default-namnområdet och metoderna GetMultiStringValue och SetMultiStringValue. Registernycklar som visas i verktyget RegEdt32 som en serie strängar avgränsade med blanksteg är i REG_MULTI_SZ dataformat. Mer information finns i Mappa en registerdatatyp till en WMI-datatyp. I följande VBScript-kodexempel skapas en ny nyckel och ett nytt multistring-värde.
Följande skript läser multistring-värdet.
|
||||||||
... ta bort en registernyckel? | Använd klassen StdRegProv, som finns i root\default-namnområdet och metoderna DeleteKey.
|