windows - 如何查找计算机在某一天的首次开机时间和最后一次关机时间?

标签 windows powershell batch-file wmi

我需要查找一天中计算机第一次启动和最后一次关闭的时间。

例如。我会在上午 10 点启动计算机,并且多次重新启动或进入空闲状态。最后在一天结束时(晚上 9 点)我会关闭机器。

我想了解过去两周我在电脑前大约花费了多长时间。

下面的命令在事件日志消息中给出了一天的正常运行时间,但它显示了以秒为单位的多个正常运行时间。相反,如果我可以获得首次启动时间和最后一次关闭时间,我可以轻松计算它。

(get-eventlog -EntryType Information -LogName System -InstanceId 2147489661 -newest 25)

最佳答案

获取每天的第一个和最后一个日志条目怎么样
前提是电脑已关闭并且只有一个用户。

此脚本获取前 10 天的第一个最后一个日志条目之间的时间跨度:

    -1..-10 | ForEach {
    $When =  (Get-Date).AddDays($_)
    $After =  Get-Date $When  -Hour 0  -Minute 0  -Second 0
    $Before = Get-Date $When  -Hour 23 -Minute 59 -Second 59
    $DayEvents =(Get-Eventlog -Entrytype Information -Logname System -After $After -Before $Before).TimeGenerated
    if($dayevents -ne $null) {
        $Span = New-Timespan -Start ($DayEvents | Select -Last 1) -End ($DayEvents | Select -First 1)
        "Your computer worked hard on {0} - for {1}:{2}:{3} hours" -F $When.ToString('yyyy-MM-dd'),$Span.Hours,$Span.Minutes,$Span.Seconds
    }
    else
    {
        $msg = "Holiday for your computer on {0}. It is not powered on" -F $When.ToString('yyyy-MM-dd') 
        Write-host $msg -foregroundcolor green
    }
}

示例输出

Your computer worked hard on 2018-04-19 - for 12:5:22 hours
Your computer worked hard on 2018-04-18 - for 8:38:51 hours
Your computer worked hard on 2018-04-17 - for 9:25:5 hours
Your computer worked hard on 2018-04-16 - for 10:36:36 hours
Holiday for your computer on 2018-04-15. It is not powered on
Your computer worked hard on 2018-04-14 - for 14:55:7 hours
Your computer worked hard on 2018-04-13 - for 13:47:32 hours
Your computer worked hard on 2018-04-12 - for 13:3:19 hours
Your computer worked hard on 2018-04-11 - for 12:35:29 hours
Your computer worked hard on 2018-04-10 - for 10:37:51 hours

关于windows - 如何查找计算机在某一天的首次开机时间和最后一次关机时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49940639/

相关文章:

powershell - 我无法再下载我的 iCloud 日历

python - scikit learn安装难度

c# - 从源代码构建 TagLib# DLL 并使其 COM 对 PHP 可见

python - pip 会卸载模块吗?

powershell - Move-Item的通配符问题

windows - 将所有批处理文件参数转发给内部命令

batch-file - Ffmpeg 拆分后文件大小增加

c++ - 在 C++ 中,如何以编程方式检测 Windows 上的反向滚动设置?

python - 使用Python查询连接到Windows的USB设备

Powershell:下载文件 404 但站点存在