blob: b7bca5f6001b2183110c89b5f98e71b703baba64 [file]
' **********************************************************
' Copyright (c) 2006 VMware, Inc. All rights reserved.
' **********************************************************
' Redistribution and use in source and binary forms, with or without
' modification, are permitted provided that the following conditions are met:
'
' * Redistributions of source code must retain the above copyright notice,
' this list of conditions and the following disclaimer.
'
' * Redistributions in binary form must reproduce the above copyright notice,
' this list of conditions and the following disclaimer in the documentation
' and/or other materials provided with the distribution.
'
' * Neither the name of VMware, Inc. nor the names of its contributors may be
' used to endorse or promote products derived from this software without
' specific prior written permission.
'
' THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
' IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
' ARE DISCLAIMED. IN NO EVENT SHALL VMWARE, INC. OR CONTRIBUTORS BE LIABLE
' FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
' DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
' SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
' CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
' LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
' OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
' DAMAGE.
strComputer = "." ' "." for local computer
On Error Resume Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer _
& "\root\cimv2")
If Err.Number = 0 Then
On Error Goto 0
strQuery = "select * from Win32_PerfRawData_PerfOS_System"
Set colObjects = objWMIService.ExecQuery(strQuery)
For Each objWmiObject In colObjects
intPerfTimeStamp = objWmiObject.Timestamp_Object
intPerfTimeFreq = objWmiObject.Frequency_Object
intCounter = objWmiObject.SystemUpTime
Next
' Calculation in seconds:
'Calculations for Raw Counter Data:PERF_ELAPSED_TIME
'http://msdn.microsoft.com/library/en-us/perfmon/base/perf_elapsed_time.asp
iUptimeInSec = (intPerfTimeStamp - intCounter)/intPerfTimeFreq
WScript.Echo "Uptime in seconds: " & iUptimeInSec \ 1
' convert the seconds
sUptime = ConvertTime(iUptimeInSec)
WScript.Echo "Uptime: " & sUptime
Else
Wscript.Echo "Could not connect to computer with WMI: " _
& strComputer
End If
Function ConvertTime(seconds)
ConvSec = seconds Mod 60
ConvMin = (seconds Mod 3600) \ 60
ConvHour = (seconds Mod (3600 * 24)) \ 3600
ConvDays = seconds \ (3600 * 24)
ConvertTime = ConvDays & " days " & ConvHour & " hours " _
& ConvMin & " minutes " & ConvSec & " seconds "
End Function