Es gibt mehrere WMI-Klassen und ein Skriptobjekt zum Analysieren oder Konvertieren des CIM-Datetime-Formats. Weitere Beispiele finden Sie im TechNet ScriptCenter unter https://www.microsoft.com/technet.
Die in diesem Thema gezeigten Skriptbeispiele erhalten Daten ausschließlich vom lokalen Computer. Weitere Informationen zur Verwendung des Skripts zum Abrufen von Daten auf Remotecomputern finden Sie unter Herstellen einer Verbindung mit WMI auf einem Remotecomputer.
So führen Sie ein Skript aus
Im Folgenden wird die Ausführung eines Skripts beschrieben.
Kopieren Sie den Code, und speichern Sie ihn in einer Datei mit der Erweiterung .vbs, z. B. filename.vbs. Achten Sie darauf, dass der Text-Editor der Datei nicht die Erweiterung .txt hinzufügt.
Öffnen Sie ein Eingabeaufforderungsfenster, und navigieren Sie zu dem Verzeichnis, in dem Sie die Datei gespeichert haben.
Geben Sie an der Eingabeaufforderung cscript filename.vbs ein.
Wenn Sie nicht auf ein Ereignisprotokoll zugreifen können, überprüfen Sie, ob Sie dies über eine Eingabeaufforderung mit erhöhten Rechten ausführen. Einige Ereignisprotokolle, z. B. das Sicherheitsereignisprotokoll, werden möglicherweise durch Benutzerzugriffssteuerungen (UAC) geschützt.
Hinweis
In cscript wird die Ausgabe eines Skripts standardmäßig im Eingabeaufforderungsfenster angezeigt. Da WMI-Skripts umfangreiche Ausgaben erzeugen können, sollten Sie die Ausgabe an eine Datei umleiten. Geben Sie an der Eingabeaufforderung cscript filename.vbs > outfile.txt ein, um die Ausgabe des Skripts filename.vbs an outfile.txt umzuleiten.
In der folgenden Tabelle werden Skriptbeispiele aufgelistet, die zum Abrufen verschiedener Arten von Daten vom lokalen Computer verwendet werden können.
Vorgehensweisen
WMI-Klassen oder -Methoden
... konvertiert WMI-Daten in standardmäßige Datums- und Uhrzeitangaben?
Verwenden Sie das Objekt SWbemDateTime, um diese in reguläre Datums- und Uhrzeitangaben zu konvertieren.
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
Sie können auch festlegen, dass der Code die Aufgabe manuell (ohne Verwendung des Objekts) ausführt.
... den Namen der Zeitzone ermitteln, in der ein Computer ausgeführt wird?
Verwenden Sie die Klasse Win32_TimeZone, und überprüfen Sie den Wert der Eigenschaft 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
... sicherstellen, dass „10/02/2000“ als 2. Oktober 2000 und nicht als 10. Februar 2000 interpretiert wird?
Verwalten Sie Datumsangaben im Format CIMDATETIME, und verwenden Sie SWbemDateTime-Methoden, z. B. GetVarDate, um sie zwischen den Formaten FILETIME oder VT_Date zu konvertieren. Da das DATETIME-Format unabhängig vom Gebietsschema ist, können Sie ein Skript schreiben, das auf beliebigen Computern ausgeführt werden kann. Verwenden Sie das Objekt SWbemDateTime, um diese in reguläre Datums- und Uhrzeitangaben zu konvertieren. Weitere Informationen zum Konvertieren von Datums- und Uhrzeitangaben finden Sie unter Datums- und Uhrzeitformat.
... einen WMI-datetime-Wert in einen .NET-DateTime-Wert konvertieren?
Analysieren Sie die Zeichenfolge manuell, und fügen Sie dann die abgerufenen Werte in das Objekt DateTime ein.