• VBS _获取系统本次及上次开关机时间WinXP Win7兼容版


    VBS _获取系统本次及上次开关机时间WinXP Win7兼容版

    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'")

    For Each objEvent In colLoggedEvents

        Flag = Flag +1

        If Flag = 1 Then

            Wscript.Echo "本次开机时间: " & UTCtoNow(objEvent.TimeWritten)

        Else

        If (flag < 4) Then

            If (flag Mod 2) = 0 Then

                G = "上次关机时间:" & UTCtoNow(objEvent.TimeWritten) & vbNewLine

        Else

                K = "上次开机时间:" & UTCtoNow(objEvent.TimeWritten)

                Wscript.Echo K & vbNewLine & G

            End If

        End If

        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

    把以上代码保存扩展名是vbs的文件就可以了。

    参考:http://hi.baidu.com/haikqq/blog/item/fed2f7d745499dc6a044df15.html

    根据以上代码和构思,我经过自己的修改和优化,比较符合自己的使用习惯,你可以把下面的代码保存到扩展名为vbs的文件中,如下代码:

    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'")
    For Each objEvent In colLoggedEvents
        Flag = Flag +1
        If Flag = 1 Then
            Wscript.Echo "本次开机时间: " & UTCtoNow(objEvent.TimeWritten)
        end if
        If (flag>=2 and flag < 4) Then
            If (flag Mod 2) = 0 Then
                G = "上次关机时间:" & UTCtoNow(objEvent.TimeWritten) & vbNewLine
            Else
                K = "上次开机时间:" & UTCtoNow(objEvent.TimeWritten)
                Wscript.Echo K & vbNewLine & G
            End If
        End If
        If (flag>=4 and flag <6) Then
            If (flag Mod 2) = 0 Then
                G = "再上次关机时间:" & UTCtoNow(objEvent.TimeWritten) & vbNewLine
            Else
                K = "再上次开机时间:" & UTCtoNow(objEvent.TimeWritten)
                Wscript.Echo K & vbNewLine & G
            End If
        End If
    
        If (flag Mod 2) = 1 Then
        G=K=""
        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
  • 相关阅读:
    [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
    [C#] 获取计算机内部信息
    [Bug] 解决 Sql Server 数据库死锁问题
    Visual Studio提示“无法启动IIS Express Web服务器”的解决方法
    [svn] TortoiseSVN 图文操作
    [js] 如何 在 jQuery 中的 $.each 循环中使用 break 和 continue
    Redis 小白指南(三)- 事务、过期、消息通知、管道和优化内存空间
    Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合
    Redis 小白指南(一)- 简介、安装、GUI 和 C# 驱动介绍
    Redis 小白指南(四)- 数据的持久化保存(草稿)
  • 原文地址:https://www.cnblogs.com/mq0036/p/2799150.html
Copyright © 2020-2023  润新知