如何在Windows 7中记录启动和关闭时间?


18

我想记录计算机启动和关闭的时间。我不需要任何诊断信息或任何东西,只需要简单地注明日期和时间即可,例如:

2011/04/29 08:17:34 AM Startup
2011/04/29 05:26:52 PM Shutdown

我怎样才能做到这一点?

到目前为止,我在Google上进行的搜索已经引起很多人询问如何减少Windows启动时间,但是手头的任务并没有引起人们的兴趣。

Answers:


26

Windows将事件日志与事件查看器一起使用来记录这种事情:

事件ID#6005指示系统启动

事件ID#6006指示系统关闭

您应该在“事件查看器”中创建一个自定义视图,该视图将过滤这两个事件ID,其来源为事件日志。

这是最简单的方法。

或者,您可以使用PowerShell的Get-WinEvent cmdlet创建自定义筛选器,并将这些项目通过管道传输到文本文件。

或者...,您可以使用Get-EventLog将自定义事件日志(使用自定义视图创建的日志)通过管道传输到文本文件。


有什么办法知道系统登录\睡眠时间?
维克多·塞尔

即使阅读了这些页面,我也不知道如何创建这些视图。但是,有一种更简单的方法。打开Event Viewer,单击Windows Logs-> System。在右侧有Filter Current Log...,点击它,并在出现新的窗插件6006All Event ID's,然后点击Ok。这将仅显示系统关闭事件。对系统启动执行相同的操作。
machineaddict

有用的东西...
Fernando Espinosa

1

6005正在显示记录事件的开始,但是我认为它也会在任何重新启动的情况下显示,即Windows在“完全启动”或热启动之间没有区别。

如果目的是仅查找第一次启动和最后一次关闭,则必须删除所有重复的6005条目。

对于我来说,事件ID 12是第一个事件,事件ID 13是最后一个事件。

12:在源(Microsoft-Windows-Kernel-General)中找不到事件ID(12)的描述。引发此事件的组件未安装在计算机上,或者安装已损坏。您可以安装或修复该组件,也可以尝试更改Description Server。

13:找不到源(Microsoft-Windows-Kernel-General)中事件ID(13)的描述。引发此事件的组件未安装在计算机上,或者安装已损坏。您可以安装或修复该组件,也可以尝试更改Description Server。

事件(插入字符串)包含以下信息:2012-12-25T18:23:26.070181000Z

PS:除此之外,我有许多实例记录了一些6005,但随后没有6006。必须基于当天的最后一个事件日志条目手动添加实际注销。


1

使用PowerShell的Get-EventLog,以下(长)单行代码会将请求的输出输出到文本文件:

Get-EventLog -LogName System | Where-Object {(($_.EventID -eq 6005) -or ($_.EventID -eq 6006)) -and ($_.TimeGenerated -gt [DateTime] "2017-05-01")} | Select-Object EventID, TimeGenerated, Message | Sort-Object -Property TimeGenerated | Foreach { if ($_.EventID -eq 6005) { $out = "Startup"  } else { $out = "Shutdown" + "`r`n"}  ($_.TimeGenerated.ToString() + '  ' + $out); } > C:\temp2\_ComputerStartsAndStops.log

笔记

  • 目录C:\temp2必须存在才能正常工作。如果它不存在,请创建它或将单行更改为使用另一个(现有)目录。
  • 要获得ISO 8601格式的输出,请用“ TimeGenerated.ToString()” 替换“ TimeGenerated.ToString("s")”。
  • 单缸内有一个内置的时间过滤器(仅包括2017-05-01之后的启动和关闭)。如果需要较早的启动和关闭,请将“ 2017-05-01”更改为其他名称。
  • 如果需要按时间倒序输出,则将“ Sort-Object” 替换为“ Sort-Object -Descending”。
  • 由于它使用Get-EventLog,因此也可以在旧版Windows上运行。

指令

可以将单行代码放入脚本中,但随后必须注意权限才能起作用。相反,最简单的方法是:

  1. 打开Windows命令提示符:Window+ R,键入CMD并按Enter
  2. 输入powershell并按Enter。(在Windows 10上,可以通过Window+ X并选择“ Windows PowerShell”直接打开PowerShell
  3. 将单线复制到剪贴板。
  4. 单线粘贴:Alt+ Space编辑粘贴(在较新版本的Windows上,常规Ctrl+ V实际上可在CMD和PowerShell窗口中使用(现在都在conhost.exe下运行))。
  5. Enter
  6. 请等到完成为止(这可能会花费很长时间,尤其是如果它是Windows的旧安装)。
  7. 结果可以在file中找到C:\temp2\_ComputerStartsAndStops.log

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.