WMI-taken voor processen verkrijgen informatie zoals het account waaronder een proces wordt uitgevoerd. U kunt acties uitvoeren zoals het maken van processen. 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
... een toepassing uitvoeren in een verborgen venster?
... bepalen welke scripts worden uitgevoerd op de lokale computer?
Gebruik de klasse Win32_Process en retourneer alle processen met de naam Cscript.exe of Wscript.exe. Als u de afzonderlijke scripts wilt bepalen die in deze processen worden uitgevoerd, controleert u de waarde van de eigenschap CommandLine.
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process" & _
" WHERE Name = 'cscript.exe'" & " OR Name = 'wscript.exe'",,48)
For Each objItem in colItems
Wscript.Echo "-------------------------------------------"
Wscript.Echo "CommandLine: " & objItem.CommandLine
Wscript.Echo "Name: " & objItem.Name
Next
Const ABOVE_NORMAL = 32768
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcesses = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess in colProcesses
objProcess.SetPriority(ABOVE_NORMAL)
Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'Notepad.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next