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

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

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

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

我怎样才能做到这一点?

到目前为止,我通过 Google 搜索发现很多人询问如何减少 Windows 启动时间,但没有人对眼前的任务感兴趣。

答案1

Windows 使用带有事件查看器的事件日志来记录此类事件:

事件 ID #6005表示系统启动

事件 ID #6006表示系统关闭

你应该创造自定义视图在事件查看器中,它将过滤以事件日志为源的两个事件 ID。

这是最简单的方法。

或者,你可以使用 PowerShell 的获取 WinEventcmdlet 创建自定义过滤器并将这些项目传送到文本文件。

或者...您可以使用获取事件日志将自定义事件日志(使用自定义视图创建...)传送到文本文件。

答案2

6005 显示日志记录事件的开始,但我认为它也会在任何重新启动的情况下显示,即 Windows 不会区分“完全启动”或热重启。

如果目的只是寻找第一次启动和最后一次关闭,则必须删除任何重复的 6005 条目。

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

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

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

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

附言:除此之外,我遇到过许多这种情况,其中记录了几个 6005,但没有记录后面的 6006。必须根据当天的最后一个事件日志条目手动添加实际注销。

答案3

使用 PowerShell获取事件日志以下(长)单行代码将把请求的输出输出到文本文件:

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”
  3. 将一行代码复制到剪贴板。
  4. 粘贴一行代码:Alt+ Space编辑粘贴(在较新版本的 Windows 上,正常的Ctrl+V实际上适用于 CMD 和 PowerShell 窗口(现在均在 conhost.exe 下运行))。
  5. Enter
  6. 等待它完成(可能需要很长时间,特别是如果它是旧版本的 Windows 安装)。
  7. 结果可以在文件中找到C:\temp2\_ComputerStartsAndStops.log

答案4

如果您没有将时间用于特定用途,也许这会对您有所帮助。 TurnedOnTimesView:监控 Windows 启动和关闭时间

相关内容