执行效果:
C:\>cscript //nologo test.vbs
No argument provided. Running against localhost
localhost has been up for 241 minutes, which comes out to:
0 Days
4 Hours
1 Minutes
|
代码:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | uptimeDays = 0 | | uptimeHrs = 0 | | uptimeMin = 0 | | | | | | | | If Wscript.Arguments.Count = 0 Then | | Wscript.Echo vbCrLf & "No argument provided. Running against localhost" | | strComputer = "localhost" | | Else strComputer = WScript.Arguments(0) | | End If | | | | fnUptime(strComputer) | | | | | | | | Function fnUptime(strComputer) | | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") | | Set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") | | For Each objOS in colOperatingSystems | | dtmBootup = objOS.LastBootUpTime | | dtmLastBootupTime = WMIDateStringToDate(dtmBootup) | | dtmSystemUptime = DateDiff("n", dtmLastBootUpTime, Now) | | Next | | | | timeConversion(dtmSystemUptime) | | End Function | | | | | | | | | | | | | | | | | | | | Function WMIDateStringToDate(dtmBootup) | | WMIDateStringToDate = CDate(Mid(dtmBootup, 5, 2) & "/" & _ | | Mid(dtmBootup, 7, 2) & "/" & Left(dtmBootup, 4) _ | | & " " & Mid (dtmBootup, 9, 2) & ":" & _ | | Mid(dtmBootup, 11, 2) & ":" & Mid(dtmBootup,13, 2)) | | End Function | | | | | | | | Function timeConversion(dtmSystemUptime) | | | | uptimeMin = dtmSystemUptime | | | | | | if uptimeMin >= 60 then | | uptimeHrs = Int(uptimeMin / 60) | | uptimeMin = (uptimeMin mod 60) | | end if | | | | | | if uptimeHrs >= 24 then | | uptimeDays = Int(uptimeHrs / 24) | | uptimeHrs = (uptimeHrs mod 24) | | end if | | | | | | | | wscript.echo | | wscript.echo strComputer & " has been up for " & dtmSystemUptime & " minutes, which comes out to:" | | wscript.echo uptimeDays & " Days" | | wscript.echo uptimeHrs & " Hours" | | wscript.echo uptimeMin & " Minutes" & vbCrLf | | End FunctionCOPY |
转自 https://github.com/gwaldo/Uptime-for-Windows/blob/master/uptime.vbs |