Le attività WMI per i processi ottengono informazioni, ad esempio l'account in cui è in esecuzione un processo. È possibile eseguire azioni come la creazione di processi. Per altri esempi, vedere TechNet ScriptCenter in https://www.microsoft.com/technet.
Gli esempi di script illustrati in questo argomento ottengono dati solo dal computer locale. Per altre informazioni su come usare lo script per ottenere dati dai computer remoti, vedere Connessione a WMI in un computer remoto.
La procedura seguente descrive come eseguire uno script.
Per eseguire uno script
Copiare il codice e salvarlo in un file con estensione vbs, ad esempio filename.vbs. Assicurarsi che l'editor di testo non aggiunge un'estensione .txt al file.
Aprire una finestra del prompt dei comandi e passare alla directory in cui è stato salvato il file.
Digitare cscript filename.vbs al prompt dei comandi.
Se non è possibile accedere a un registro eventi, verificare se si esegue da un prompt dei comandi con privilegi elevati. Alcuni log eventi, ad esempio il registro eventi di sicurezza, possono essere protetti da controlli di accesso utente (UAC).
Nota
Per impostazione predefinita, cscript visualizza l'output di uno script nella finestra del prompt dei comandi. Poiché gli script WMI possono produrre grandi quantità di output, è possibile reindirizzare l'output a un file. Digitare cscript filename.vbs outfile.txtal prompt dei comandi per reindirizzare l'output dello scriptfilename.vbs> a outfile.txt.
Nella tabella seguente sono elencati gli esempi di script che possono essere usati per ottenere vari tipi di dati dal computer locale.
Ricerca per categorie
Classi o metodi WMI
... eseguire un'applicazione in una finestra nascosta?
... determinare quali script sono in esecuzione nel computer locale?
Usare la classe Win32_Process e restituire tutti i processi con il nome Cscript.exe o Wscript.exe. Per determinare i singoli script in esecuzione in questi processi, controllare il valore della proprietà 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