Esistono diverse classi WMI e un oggetto di scripting da analizzare o convertire il formato datetime CIM. Per altri esempi, vedere TechNet ScriptCenter all'indirizzo 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 da computer remoti, vedere Connessione a WMI in un computer remoto.
Per eseguire uno script
La procedura seguente descrive come 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 aggiunga 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 registri eventi, ad esempio il registro eventi di sicurezza, possono essere protetti da Controllo di accesso utente.Some Event Log, such as the Security Event Log, may be protected by User Controllo di accesso s (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.txt al prompt dei comandi per reindirizzare l'output dello script filename.vbs a outfile.txt.
Nella tabella seguente sono elencati esempi di script che possono essere usati per ottenere vari tipi di dati dal computer locale.
Ricerca per categorie
Classi o metodi WMI
... convertire date WMI in date e ore standard?
Utilizzare l'oggetto SWbemDateTime per convertirli in date e ore regolari.
VB
Set dtmInstallDate = CreateObject("WbemScripting.SWbemDateTime")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each strOS in objOS
dtmInstallDate.Value = strOS.InstallDate
Wscript.Echo dtmInstallDate.GetVarDate
Next
In alternativa, il codice esegue manualmente l'attività.
... determinare il nome del fuso orario in cui è in esecuzione un computer?
Usare la classe Win32_TimeZone e controllare il valore della proprietà Description .
VB
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")
For Each objItem in colItems
Wscript.Echo "Description: " & objItem.Description
Wscript.Echo "Daylight Name: " & objItem.DaylightName
Wscript.Echo "Standard Name: " & objItem.StandardName
Wscript.Echo
Next
PowerShell
$Computer = "."
$timezone = Get-WMIObject -class Win32_TimeZone -ComputerName $computer
<# Display details #>
if ($computer -eq ".") {$computer = Hostname}
"Time zone information on computer `"{0}`"" -f $computer
"Time Zone Description : {0}" -f $timezone.Description
"Daylight Name : {0}" -f $timezone.DaylightName
"Standard Name : {0}" -f $timezone.StandardName
... assicurarsi che "10/02/2000" venga interpretato come 2 ottobre 2000, non "10 febbraio 2000"?
Gestire le date in formato CIM DATETIME e usare i metodi SWbemDateTime, ad esempio GetVarDate per convertirli in e da formati FILETIME o VT_Date. Poiché il formato DATETIME è indipendente dalle impostazioni locali, è possibile scrivere uno script eseguito in qualsiasi computer. Utilizzare l'oggetto SWbemDateTime per convertirli in date e ore regolari. Per altre informazioni sulla conversione di date e ore, vedere Formato data e ora.
... convertire un valore datetime WMI in un valore DateTime .NET?
Analizzare manualmente la stringa, quindi inserire i valori recuperati in un oggetto DateTime .