Windows Server 重启/关闭历史记录

Windows Server 重启/关闭历史记录

如何轻松查看 Windows Server 每次重启或关闭的历史记录及其原因(包括用户启动、系统启动和系统崩溃)?

Windows 事件日志是一个显而易见的答案,但是我应该查看的完整事件列表是什么?

我发现这些帖子部分回答了我的问题:

但据我所知,这些并未涵盖所有情况,并且由于信息分散在多个答案中,因此很难理解。

我有多个版本的 Windows Server,因此至少适用于 2008、2008 R2、2012 和 2012 R2 版本的解决方案是理想的。

答案1

我能找到的最清晰、最简洁的答案是:

列出了要监视的事件 ID(引用自文章,但经过编辑和重新格式化):

  • 事件 ID 6005备用): “事件日志服务已启动。” 这与系统启动同义。
  • 事件 ID 6006备用): “事件日志服务已停止。” 这与系统关闭同义。
  • 事件 ID 6008备用):“上次系统关闭是意外的。”记录系统在未正常关闭后启动。
  • 事件 ID 6009备用): 表示启动时检测到的 Windows 产品名称、版本、内部版本号、服务包号和操作系统类型。
  • 事件 ID 6013:显示计算机的正常运行时间。此 ID 没有 TechNet 页面。

除此之外,在我的 OP 中列出的 Server Fault 答案中还有更多内容:

  • 事件 ID 1074备用): “进程 X 已代表用户 Y 启动计算机的重启/关闭,原因如下:Z。” 表示应用程序或用户启动了重启或关闭。
  • 事件 ID 1076备用): “用户 X 提供的这台计算机上次意外关机的原因是:Y。”记录第一个具有关机权限的用户在意外重新启动或关机后登录计算机的时间,并提供发生该情况的原因。

我有遗漏什么吗?

答案2

转向@user10082评论找到答案。建议的解决方案是一行代码,如 Powershell 脚本:

Get-EventLog -LogName System |? {$_.EventID -in (6005,6006,6008,6009,1074,1076)} | ft TimeGenerated,EventId,Message -AutoSize –wrap

输出如下:

TimeGenerated         EventID Message
-------------         ------- -------
5/30/2021 11:23:16 AM    6005 The Event log service was started.
5/30/2021 11:23:16 AM    6009 Microsoft (R) Windows (R) 10.00. 19042  Multiprocessor Free.
5/30/2021 11:23:16 AM    6008 The previous system shutdown at 18:35:45 on ‎24/‎05/‎2021 was unexpected.
5/24/2021 11:55:45 AM    6005 The Event log service was started.
5/24/2021 11:55:45 AM    6009 Microsoft (R) Windows (R) 10.00. 19042  Multiprocessor Free.
5/24/2021 11:55:31 AM    6006 The Event log service was stopped.
5/24/2021 11:55:27 AM    1074 The process C:\Windows\system32\SystemSettingsAdminFlows.exe (DESKTOP) has
                              initiated the restart of computer DESKTOP on behalf of user DESKTOP\User
                              for the following reason: Other (Unplanned)
                               Reason Code: 0x0
                               Shutdown Type: restart
                               Comment:

答案3

我只想将其作为评论保留,因为 JohnC 基本上已经涵盖了所有内容,但我现在还不被允许这样做。

他描述的事件已经使用了很长一段时间,因此它们适用于您提到的任何操作系统,以及它们的桌面兄弟。他链接到的事件 ID 页面,例如6006在 TechNet 上提及 Windows Server 2003。

如果发生了正常关机(无论是用户启动的还是其他原因),您还应该看到一些事件 ID 7036告诉您各种服务“已进入停止状态”。 当机器再次启动时,您将看到更多的 7036 宣布服务正在进入运行状态。

答案4

构建于@JohnC的答案并扩展它

您可以使用如下 XML 过滤器:

<QueryList>
<Query Id="0" Path="System">
<Select Path="Security">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="Setup">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Thermal-Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='User32'] and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-WER-SystemErrorReporting'] and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
</Query>
</QueryList>

您可以将 172800000 替换为以下时间范围的值:

86400000 - 过去 24 小时

172800000 - 过去 2 天

604800000 - 过去 7 天

这将显示从服务器/PC离线时的更多详细信息,其中包括 Kernel-Power、User32 和 EventLog 事件。

相关内容