我需要查找一天中计算机第一次启动和最后一次关闭的时间。
例如。我会在上午 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/