当前位置 博文首页 > VBS中获取系统本次及上次开关机时间的代码(WinXP/win2003/Win7兼

    VBS中获取系统本次及上次开关机时间的代码(WinXP/win2003/Win7兼

    作者:admin 时间:2021-02-09 15:29

    复制代码 代码如下:

    If (Lcase(Right(Wscript.FullName,11)) = "wscript.exe") Then
    CreateObject("WScript.Shell").Run("%Comspec% /C " &Chr(34)&"mode con cols=100&Cscript.exe //NoLogo "&Chr(34)& Wscript.ScriptFullName &Chr(34)&"&&(Echo 此窗口40秒后自动关闭...&Ping -n 40 127.0.1>nul&Exit)"&Chr(34)),3:Wscript.Quit
    Wscript.Quit
    End If
    Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set colLoggedEvents = WMI.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = 'System' And EventCode = '6005' Or EventCode = '6006' Or EventCode = '6008'")
    For Each objEvent In colLoggedEvents
    Flag = Flag + 1
    If Flag = 1 Then
    Wscript.Echo "本次开机时间: " & UTCtoNow(objEvent.TimeWritten)
    ElseIf (Flag Mod 2) = 0 Then
    G = UTCtoNow(objEvent.TimeWritten)
    Else
    K = UTCtoNow(objEvent.TimeWritten)
    Wscript.Echo "前次开机:"&K&" "&vbTab&"对应关机:"&G&" "&vbTab& "运行时长:" &StoHMS(DateDiff("s", K, G))
    End If
    Next

    Function UTCtoNow(nD)
    If Not IsNull(nD) Then
    Set SWDT = CreateObject("WbemScripting.SWbemDateTime")
    SWDT.Value = nD
    UTCtoNow = SWDT.GetVarDate(True)
    End If
    End Function

    Function StoHMS(Sec)
    H = Int(Sec/3600) :H1 = Sec Mod 3600:M = Int(H1/60) :S = H1 Mod 60
    StoHMS = H & "小时" & M & "分钟" & S &"秒"
    End Function
    js
    下一篇:没有了