如何确定Windows是否在给定时间运行?


16

在Windows(7/8/10)上,是否可以确定计算机是否在给定时间运行?(例如,如果昨晚在晚上10点,如果计算机正在运行或关闭,则)


如果计算机正在运行,则Windows事件日志可能/应该具有事件。这不会是完美的。
赛斯

Answers:


21

您可以使用Windows事件查看器来执行此操作。

要在Windows 7中启动事件查看器:

  • 点击开始按钮
  • 单击控制面板
  • 单击系统和维护
  • 单击管理工具
  • 双击事件查看器

在Windows 8和10中,您可以使用Windows Key+ X+ V快捷方式运行事件查看器。您也可以通过“运行”菜单将其打开。即,按Windows Key+ R打开“运行”对话框,然后键入eventvwr并单击“确定”。

打开事件查看器后,请按照下列步骤操作:

  1. 在左窗格中,转到Windows日志>系统。
  2. 在右窗格中,您将看到Windows运行时发生的事件的列表。
  3. 单击事件ID标签以按“事件ID”列对数据进行排序
  4. 您的事件日志可能会很长,因此您需要创建一个过滤器。
  5. 在右侧的“操作”窗格中,单击“过滤当前日志”
  6. 在未标记的字段中输入6005、6006(请参见下面的屏幕截图):

在此处输入图片说明

  1. 点击确定

请注意,事件查看器可能需要一些时间才能显示过滤的日志。

综上所述:

事件ID 6005表示“事件日志服务已启动”(即启动时间)。

事件ID 6006表示“事件日志服务已停止”(即关闭时间)。

如果需要,还可以将事件ID 6013添加到过滤器中-这将显示启动后系统的正常运行时间。

最后,如果您要定期检查该内容,则可以创建一个自定义视图以显示此过滤后的日志。自定义视图位于Windows Event Viewer左窗格的左上方。通过在其中添加它,您可以选择在想要查看日志时选择它。


6

请注意,当计算机进入睡眠状态时,服务不会停止,但Kernel-Power事件源会提及所有电源状态转换。要从命令行查询事件日志,可以使用PowerShell!

Get-WinEvent -LogName System | ? {$_.ProviderName -eq 'Microsoft-Windows-Kernel-Power'}

在我的笔记本电脑上,将产生如下列表:

TimeCreated                     Id LevelDisplayName Message
-----------                     -- ---------------- -------
10/21/2016 1:20:43 PM          130 Information      Firmware S3 times. SuspendStart: 31954205, SuspendEnd: 31954215
10/21/2016 1:20:43 PM          131 Information      Firmware S3 times. ResumeCount: 11, FullResume: 498, AverageResu...
10/21/2016 1:16:54 PM          107 Information      The system has resumed from sleep.
10/21/2016 1:16:53 PM           42 Information      The system is entering sleep....
10/21/2016 1:06:05 PM          130 Information      Firmware S3 times. SuspendStart: 31305142, SuspendEnd: 31305152
10/21/2016 1:06:05 PM          131 Information      Firmware S3 times. ResumeCount: 10, FullResume: 498, AverageResu...
10/21/2016 12:29:30 PM         107 Information      The system has resumed from sleep.
10/21/2016 12:29:29 PM          42 Information      The system is entering sleep....

奇怪的是,有时事件107上的时间是不正确的(此笔记本电脑在恢复时会短暂丢失时间),但是下一次“固件S3次”事件会正确处理。

当然,如果计算机意外关闭,则在关闭的确切时间您将不会收到任何事件-下一次Kernel-Power将是系统意识到断电时。因此,另一种方法是查找在有关时间之前记录的任何类型的最新事件。

Get-WinEvent -LogName Application | ? {$_.TimeCreated -le '10/19/2016 12:45 PM'} | select -First 1

您将用10/19/2016 12:45 PM感兴趣的时间代替。我为此查询选择了应用程序日志,因为它通常非常活跃。如果所TimeCreated产生事件的发生在您提供的时间之前一个多小时左右,则可能是计算机未完全运行。


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.