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.
Så här kör du ett skript
Följande procedur beskriver hur du kör 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
... konvertera WMI-datum till standarddatum och -tider?
Använd objektet SWbemDateTime för att konvertera dessa till vanliga datum och tider.
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
... fastställa namnet på tidszonen där en dator körs?
Använd klassen Win32_TimeZone och kontrollera värdet för egenskapen 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
... se till att "10/02/2000" tolkas som 2 oktober 2000, inte "10 feb, 2000"?
Hantera datum i CIM-DATETIME- format och använd SWbemDateTime- metoder, till exempel GetVarDate- för att konvertera till dem till och från antingen FILETIME- eller VT_Date format. Eftersom DATETIME-format är språkoberoende kan du skriva ett skript som körs på valfri dator. Använd objektet SWbemDateTime för att konvertera dessa till vanliga datum och tider. Mer information om hur du konverterar datum och tider finns i datum- och tidsformat.
... konvertera en WMI-datetime till ett .NET DateTime-värde?
Parsa strängen manuellt och placera sedan de hämtade värdena i ett DateTime--objekt.