WMI Tasks: Dates and Times
Windows XP introduced several WMI classes and a scripting object to parse or convert the CIM datetime format. For other examples, see the TechNet ScriptCenter at http://www.microsoft.com/technet.
The script examples shown in this topic obtain data only from the local computer. For more information about how to use the script to obtain data from remote computers, see Connecting to WMI on a Remote Computer.
The following procedure describes how to run a script.
To run a script
- Copy the code and save it in a file with a .vbs extension. Ensure that your text editor does not add a .txt extension to the file.
- Open a command prompt window and navigate to the directory where you saved the file.
- Type cscript scriptfile.vbs at the command prompt.
Note By default, cscript displays the output of a script in the command prompt window. Because WMI scripts can produce large amounts of output, you might want to redirect the output to a file. Type cscript scriptfile.vbs > outfile.txt at the command prompt to redirect the output of the filename.vbs script to outfile.txt.
The following table lists script examples that can be used to obtain various types of data from the local computer.
| How do I... | WMI classes or methods |
|---|---|
| ...convert WMI dates to standard dates and times? | Use the SWbemDateTime object to convert these to regular dates and times.
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 |
| ...determine the time currently configured on a computer? | Use the Win32_LocalTime class.
strComputer = "." Set objWMIService = GetObject( _ "winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery( _ "Select * from Win32_LocalTime") For Each objItem in colItems Wscript.Echo "Day: " & objItem.Day & VBNewLine _ & "Day Of Week: " & objItem.DayOfWeek & VBNewLine _ & "Hour: " & objItem.Hour & VBNewLine _ & "Minute: " & objItem.Minute & VBNewLine _ & "Month: " & objItem.Month & VBNewLine _ & "Quarter: " & objItem.Quarter & VBNewLine _ & "Second: " & objItem.Second & VBNewLine _ & "Week In Month: " & objItem.WeekInMonth & VBNewLine _ & "Year: " & objItem.Year Next |
| ...determine the name of the time zone in which a computer is running? | Use the Win32_TimeZone class and check the value of the Description property.
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 |
| ...ensure that "10/02/2000" is interpreted as Oct. 2, 2000, not "10 Feb, 2000"? | Manage dates in CIM DATETIME format and use SWbemDateTime methods, such as GetVarDate to convert to them to and from either FILETIME or VT_Date formats. Because DATETIME format is locale-independent, you can write a script that runs on any machine. Use the SWbemDateTime object to convert these to regular dates and times. See Date and Time Format for more information on converting dates and times. |
Related topics
- WMI Tasks for Scripts and Applications
- WMI C++ Application Examples
- Date and Time Format
- TechNet ScriptCenter
Send comments about this topic to Microsoft
Build date: 11/19/2012
