WMI-taken: register
WMI-taken voor het maken en wijzigen van registersleutels en -waarden. Zie het TechNet ScriptCenter op https://www.microsoft.com/technetvoor andere voorbeelden.
De scriptvoorbeelden die in dit onderwerp worden weergegeven, verkrijgen alleen gegevens van de lokale computer. Zie Verbinding maken met WMI op een externe computer op een externe computervoor meer informatie over het gebruik van het script om gegevens op te halen van externe computers.
In de volgende procedure wordt beschreven hoe u een script uitvoert.
Een script uitvoeren
- Kopieer de code en sla deze op in een bestand met de extensie .vbs, zoals bestandsnaam.vbs. Zorg ervoor dat uw teksteditor geen .txt extensie aan het bestand toevoegt.
- Open een opdrachtpromptvenster en navigeer naar de map waarin u het bestand hebt opgeslagen.
- Typ cscript bestandsnaam.vbs bij de opdrachtprompt.
- Als u geen toegang hebt tot een gebeurtenislogboek, controleert u of u wordt uitgevoerd vanaf een opdrachtprompt met verhoogde bevoegdheid. Sommige gebeurtenislogboeken, zoals het beveiligingslogboek, kunnen worden beveiligd door UAC (User Access Controls).
Notitie
In cscript wordt standaard de uitvoer van een script weergegeven in het opdrachtpromptvenster. Omdat WMI-scripts grote hoeveelheden uitvoer kunnen produceren, kunt u de uitvoer omleiden naar een bestand. Typ cscript bestandsnaam.vbs > outfile.txt bij de opdrachtprompt om de uitvoer van de bestandsnaam.vbs script om te leiden naar outfile.txt.
De volgende tabel bevat scriptvoorbeelden die kunnen worden gebruikt voor het verkrijgen van verschillende typen gegevens van de lokale computer.
Hoe kan ik... | WMI-klassen of -methoden | ||||||||
---|---|---|---|---|---|---|---|---|---|
... registersleutelwaarden lezen met WMI? | Gebruik de klasse StdRegProv in root\default namespace. U kunt geen exemplaren van deze klasse ophalen omdat de System Registry Provider alleen een methode en gebeurtenisprovider is. U kunt echter registergegevens ophalen via methoden zoals EnumKey of EnumValue. De Win32_Registry, gelegen in root\cimv2-naamruimte, haalt gegevens op over het register als geheel, zoals hoe groot het is.
|
||||||||
... een nieuwe registersleutel maken? | Gebruik de klasse StdRegProv, die zich in de hoofdnaamruimte\standaardnaamruimte bevindt en de methode CreateKey.
|
||||||||
... maakt u een nieuwe registerwaarde onder een sleutel? | Gebruik de klasse StdRegProv in de hoofdnaamruimte\standaardnaamruimte en de methode CreateKey. Gebruik vervolgens een van de setmethoden, afhankelijk van het registergegevenstype dat de waarde is, zoals de SetDWORDValue. Met de methoden Instellen wordt een waarde gemaakt als deze nog niet bestaat. Zie Een registergegevenstype toewijzen aan een WMI-gegevenstypevoor meer informatie.
|
||||||||
... voorkomt u dat er een ongeldige klassefout optreedt bij het schrijven van een script om het register te lezen? | Gebruik de hoofdnaamruimte\standaardnaamruimte bij toegang tot de klasse StdRegProv. StdRegProv maakt geen deel uit van de cimv2-naamruimte. Daarom wordt er een fout 'Ongeldige klasse' gegenereerd als u verbinding probeert te maken met root\cimv2:StdRegProv.
|
||||||||
... beveiliging controleren op een specifieke registersleutel? | Gebruik de klasse StdRegProv in root\default namespace en de methode CheckAccess. U kunt alleen de toegangsrechten controleren voor de huidige gebruiker waarop het script of de toepassing wordt uitgevoerd. U kunt de toegangsrechten voor een andere opgegeven gebruiker niet controleren. |
||||||||
... binaire registerwaarden lezen en schrijven? | Gebruik de klasse StdRegProv, die zich in de naamruimte Root\Default bevindt en de methoden GetBinaryValue en SetBinaryValue. Registerwaarden die in het hulpprogramma RegEdt32 worden weergegeven als een reeks hexadecimale bytewaarden, hebben de REG_BINARY gegevensindeling. Zie Een registergegevenstype toewijzen aan een WMI-gegevenstypevoor meer informatie. In het volgende VBScript-codevoorbeeld wordt een nieuwe sleutel met een binaire waarde gemaakt. De binaire waarde wordt opgegeven in de iValues bytematrix die is opgegeven in Hex.
Met het volgende script wordt de binaire waarde gelezen.
|
||||||||
... registerwaarden lezen en schrijven die meerdere tekenreeksen bevatten? | Gebruik de klasse StdRegProv in root\default namespace en de methode GetMultiStringValue en SetMultiStringValue methoden. Registersleutels die worden weergegeven in het hulpprogramma RegEdt32 als een reeks tekenreeksen gescheiden door spaties, hebben de REG_MULTI_SZ gegevensindeling. Zie Een registergegevenstype toewijzen aan een WMI-gegevenstypevoor meer informatie. In het volgende VBScript-codevoorbeeld wordt een nieuwe sleutel en een nieuwe multistringwaarde gemaakt.
Met het volgende script wordt de waarde voor meerdere tekenreeksen gelezen.
|
||||||||
... een registersleutel verwijderen? | Gebruik de klasse StdRegProv in root\default namespace en de DeleteKey methoden.
|