Es gibt mehrere WMI-Klassen und ein Skriptobjekt, um das CIM-datetime-Format zu analysieren oder zu konvertieren. Weitere Beispiele finden Sie im TechNet ScriptCenter unter https://www.microsoft.com/technet .
Die in diesem Thema gezeigten Skriptbeispiele rufen Daten nur vom lokalen Computer ab. Weitere Informationen zur Verwendung des Skripts zum Abrufen von Daten von Remotecomputern finden Sie unter Herstellen einer Verbindung mit WMI auf einem Remotecomputer.
So führen Sie ein Skript aus
Im folgenden Verfahren wird beschrieben, wie Ein Skript ausgeführt wird.
Kopieren Sie den Code, und speichern Sie ihn in einer Datei mit der Erweiterung .vbs, z. B.filename.vbs. Stellen Sie sicher, dass Ihr Text-Editor der Datei keine .txt Erweiterung hinzufüg.
Ö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 über eine Eingabeaufforderung mit erhöhten Rechten ausführen. Einige Ereignisprotokolle, z. B. das Sicherheitsereignisprotokoll, können durch Benutzerzugriffssteuerungen (User Access Controls, UAC) geschützt werden.
Hinweis
Standardmäßig zeigt cscript die Ausgabe eines Skripts im Eingabeaufforderungsfenster an. Da WMI-Skripts große Mengen von Ausgaben erzeugen können, sollten Sie die Ausgabe an eine Datei umleiten. Geben Sie cscript filename.vbs > outfile.txt an der Eingabeaufforderung ein, um die Ausgabe des filename.vbs Skripts anoutfile.txt umzuleiten.
In der folgenden Tabelle sind Skriptbeispiele aufgeführt, die zum Abrufen verschiedener Datentypen vom lokalen Computer verwendet werden können.
Vorgehensweisen
WMI-Klassen oder -Methoden
... WMI-Datumsangaben in Standarddaten und -uhrzeiten konvertieren?
Verwenden Sie das SWbemDateTime-Objekt, 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
Oder lassen Sie den Code die Aufgabe manuell durchführen.
... bestimmen Sie den Namen der Zeitzone, in der ein Computer ausgeführt wird?
Verwenden Sie die Win32_TimeZone-Klasse, und überprüfen Sie den Wert der Description-Eigenschaft.
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
... stellen Sie sicher, dass " der 02.10.2000 " als 2. Oktober 2000, nicht als " 10. Februar 2000 interpretiert " wird.
Verwalten Sie Datumsangaben im CIMDATETIME-Format, und verwenden Sie SWbemDateTime-Methoden wie GetVarDate, um sie entweder in filetime- oder VT_Date-Formate zu konvertieren. Da das DATETIME-Format gebietsschemaunabhängig ist, können Sie ein Skript schreiben, das auf jedem Computer ausgeführt wird. Verwenden Sie das SWbemDateTime-Objekt, um diese in reguläre Datums- und Uhrzeitangaben zu konvertieren. Weitere Informationen zum Konvertieren von Datums- und Uhrzeitangaben finden Sie unter Datums- und Uhrzeitformat.
... konvertieren Sie einen WMI-datetime-Wert in einen .NET-DateTime-Wert?
Analysieren Sie die Zeichenfolge manuell, und legen Sie die abgerufenen Werte dann in ein DateTime-Objekt ab.