Er zijn verschillende WMI-klassen en een scriptobject om de CIM-datum/tijd--indeling te parseren of te converteren. 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.
Een script uitvoeren
In de volgende procedure wordt beschreven hoe u een script uitvoert.
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
... WMI-datums converteren naar standaarddatums en -tijden?
Gebruik het SWbemDateTime--object om deze te converteren naar normale datums en tijden.
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
... bepaalt u de naam van de tijdzone waarin een computer wordt uitgevoerd?
Gebruik de klasse Win32_TimeZone en controleer de waarde van de eigenschap 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
... zorg ervoor dat '10/02/2000' wordt geïnterpreteerd als 2 oktober 2000, niet '10 feb, 2000'?
Datums beheren in CIM-DATETIME--indeling en SWbemDateTime-methoden gebruiken, zoals GetVarDate- om ze te converteren naar en van FILETIME-- of VT_Date-indelingen. Omdat datetime-indeling onafhankelijk is van landinstellingen, kunt u een script schrijven dat op elke computer wordt uitgevoerd. Gebruik het SWbemDateTime--object om deze te converteren naar normale datums en tijden. Zie datum- en tijdnotatie voor meer informatie over het converteren van datums en tijden.
... een WMI-datum/tijd converteren naar een .NET DateTime-waarde?
Parseert de tekenreeks handmatig en plaats vervolgens de opgehaalde waarden in een DateTime-object.