当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何检查 Windows 10 中的启动时间和 Windows 正常运行时间

作者:精品下载站 日期:2024-12-14 20:50:23 浏览:15 分类:玩电脑

如何检查 Windows 10 中的启动时间和 Windows 正常运行时间


Windows 正常运行时间是许多服务器管理员用来解决环境中可能出现的日常问题的衡量标准。在本文中,您将了解如何检查 Windows 10 和 Windows Server 中的启动时间。您可以自由使用对您来说最简单的方式。使用本文作为将来的参考。

本文将分为两个主要部分;检查服务器正常运行时间并查找历史 Windows 正常运行时间。第一部分将重点关注计算机自上次重新启动以来已经运行了多长时间。在本文中,这称为“当前”正常运行时间。

本文的第二部分将重点关注查找“历史”正常运行时间,即 Windows 系统在多次重新启动之间的运行时间。使用 PowerShell,您将学习如何解析 Windows 事件日志以提取历史正常运行时间数字。

如何检查 Windows 10 和 Windows Server 中的启动时间

首先,我们现在通过几种不同的方法来查找当前的 Windows 正常运行时间。

通过本节,您将看到如何通过在 Windows 系统上本地运行命令来检查 Windows 10 中的启动时间的演示。但要知道,通过使用 PowerShell Remoting,您还可以远程执行这些检查(不包括任务管理器)。

任务管理器

查找正常运行时间的最简单直接的方法之一就是打开任务管理器。

要使用任务管理器检查 Windows 正常运行时间,请右键单击 Windows 任务栏并选择任务管理器或按Ctrl-Shift-Esc。 任务管理器打开后,单击“性能”选项卡。在“性能”选项卡下,您将看到“正常运行时间”标签。

[玩转系统] 如何检查 Windows 10 中的启动时间和 Windows 正常运行时间

事件查看器

大多数系统管理员定期使用事件查看器,这使其成为非命令行相关的正常运行时间检索方法的绝佳选择。事件 ID 6005 和 6006 可用于识别事件日志服务何时启动或停止,这发生在启动/关闭停机期间。请按照以下步骤通过事件查看器确定正常运行时间:

  • 打开“开始”菜单,只需搜索事件查看器,您也可以通过计算机管理访问它。
  • 在左侧,展开 Windows 日志部分并选择系统
  • 现在我们只查询系统相关事件,请单击窗口右侧的“过滤当前日志...”
  • 在“事件 ID”字段中(默认情况下,将预填充“所有事件 ID”的文本),我们需要搜索适用的事件 ID,输入“6005、6006”,然后单击“确定”

然后,您可以比较这两个时间来得出总的正常运行时间。此外,由于存储了这些事件的许多实例,我们可以查询正常运行时间的历史记录!

您现在已经过滤了事件日志,这些日志不仅会显示上次启动/关闭的时间,还会显示所有已知的启动/关闭时间。

电源外壳

PowerShell 有几种不同的方法可以检索正常运行时间。您可以查询 WMI 或使用 Windows 事件日志。

查询 WMI 时,您可以查询 Win32_OperatingSystem 类并选择 LastBootUpTime 属性,如下所示。

PS51> Get-CimInstanceWin32_OperatingSystem|Select-ObjectLastBootUpTime

LastBootUpTime      
--------------      
9/25/2019 9:37:37 PM

要通过 PowerShell 查询事件日志,请使用 Get-WinEvent cmdlet。您需要搜索指示计算机上次启动时间的事件 ID 6005 或 6006。

PS51> Get-WinEvent-ProviderNameEventLog|Where-Object{$_.Id-eq6005-or$_.Id-eq6006}|Select-Object-First1TimeCreated

TimeCreated         
-----------         
9/25/2019 9:37:52 PM

世界微波集成电路

WMIC 为 WMI 提供了一个命令行界面,并且是一种已经使用多年的可靠方法。要通过 WMIC 通过正常运行时间进行查询,您需要再次查询 Win32_OperatingSystem WMI 类,尽管有点隐秘。您可以在下面看到,您可以使用 WMIC 语法 os get lastbootuptime 返回服务器上次启动的时间。

> wmicosgetlastbootuptime

LastBootUpTime             

20190925213737.500000-240

您无需下载任何内容即可利用 WMIC,因为它已随 Windows 预装。

系统信息实用程序

systeminfo 命令显示有关计算机的详细配置信息,并可用于查询系统正常运行时间。通过使用内置的查找命令行工具,您可以解析文本以检索所需的数据。

只需打开命令提示符或 PowerShell 并输入 systeminfo |找到。

> systeminfo|find"SystemBootTime:"

System Boot Time:          9/25/2019, 9:37:37 PM

您无需下载任何内容即可利用 systeminfo,因为它已随 Windows 预装。

网络统计命令

您还可以通过“网络统计”或更常见的“网络统计”来快速查询正常运行时间。 net stats 命令返回有关您的会话的一般信息。您可以在自...以来的统计行下方看到。该日期表示机器启动的时间。

> netstatssrv

Workstation Statistics for \NATES-PC


Statistics since 9/25/2019 9:37:52 PM

--SNIP--

The command completed successfully.

正常运行时间命令

如果您需要一个小型便携式实用程序来查找 Windows 正常运行时间,NeoSmart Technologies 的 Windows 正常运行时间命令就是您的最佳选择。该实用程序非常适合快速查询任何 Windows 版本的正常运行时间。该工具的主要好处是方便。如果您发现自己每天多次使用此方法,您可能需要考虑这种方法。

下载该工具后,将 uptime.exe 解压到 %WinDir%\System32。然后打开命令提示符并只需输入 uptime

[玩转系统] 如何检查 Windows 10 中的启动时间和 Windows 正常运行时间

要远程运行此工具,您首先需要将该工具复制到您要检查正常运行时间的 Windows 系统。

介绍 Get-ServerUptimeReport 脚本

因此,您不必自己编写 PowerShell,只需下载名为 Get-ServerUptimeReport.ps1 的社区脚本。

PS51>Install-Script-NameGet-ServerUptimeReport

该脚本允许您提供计算机名称作为参数。然后,它将解析计算机的系统事件日志,并找到启动事件和停止事件来比较两者。然后它将返回事件日志滚动之前服务器在线的总时间。

下面是在服务器上使用此脚本的示例。它将返回服务器事件日志中所有事件的总正常运行时间,包括当前的正常运行时间。

PS51>./Get-ServerUptimeReport.ps1-ComputerNamesqlsrv1

StartupShutdownUptime(Days)Uptime(Min)
----------------------------------------
9/16/201712:40:00PM9/22/20174:20:11PM6.158860.18
9/16/201710:22:49AM9/16/201712:22:36PM0.08119.79
9/16/20173:22:12PM9/22/20174:20:11PM6.048697.98

查找多台服务器上的 Windows 正常运行时间

此脚本是查找单个服务器多天内正常运行时间的快速方法。但是,如果您同时需要许多服务器的这些信息怎么办?为此,您可以收集服务器列表,然后将每台计算机名称(一次一个)传递给此脚本。

例如,在 PowerShell 控制台的数组中定义所有服务器。在此示例中,变量数组将称为 $servers

但实际上,您可能会从 Active Directory、Hyper-V 或文本文件中提取服务器名称。只要您可以构建服务器名称数组,就可以了。

定义所有服务器名称,然后使用循环迭代每个服务器名称,如下所示。

$servers='WEBSRV1','SQLSRV1'
foreach($serverin$servers){
	Get-ServerUptimeReport.ps1-ComputerName$server
}

StartupShutdownUptime(Days)Uptime(Min)
----------------------------------------
9/16/201712:45:48PM9/22/20174:25:39PM6.158859.86
9/16/201710:42:52AM9/16/201712:42:34PM0.08119.7
9/16/20172:42:17PM9/22/20174:25:39PM6.078743.38
9/16/201712:40:00PM9/22/20174:25:39PM6.168865.65
9/16/201710:22:49AM9/16/201712:22:36PM0.08119.79
9/16/20173:22:12PM9/22/20174:25:39PM6.048703.46

此代码有效,但您无法确定每行引用哪个服务器。使用计算属性将服务器名称添加到输出中,如下所示。

$servers='WEBSRV1','SQLSRV1'
foreach($serverin$servers){
	Get-ServerUptimeReport.ps1-ComputerName$server|Select-Object-Property*,@{n='ServerName';e={$server}}
}

StartupShutdownUptime(Days)Uptime(Min)ServerName
--------------------------------------------------
9/16/201712:45:48PM9/22/20174:34:59PM6.168869.19WEBSRV1
9/16/201710:42:52AM9/16/201712:42:34PM0.08119.7WEBSRV1
9/16/20172:42:17PM9/22/20174:34:59PM6.088752.71WEBSRV1

StartupShutdownUptime(Days)Uptime(Min)ServerName
--------------------------------------------------
9/16/201712:40:00PM9/22/20174:35:01PM6.168875.01SQLSRV1
9/16/201710:22:49AM9/16/201712:22:36PM0.08119.79SQLSRV1
9/16/20173:22:12PM9/22/20174:35:01PM6.058712.81SQLSRV1

我们现在有了一个出色的小工具,可以为我们提供服务器正常运行时间的快速报告!

总结

您现在已经看到了许多不同的方法来查找 Windows 正常运行时间。无论您选择哪个选项,您都会收到相同的信息。选择最适合您自己的情况的一项。

请记住,如果您需要正常运行时间历史记录的历史报告,请不要忘记 Get-ServerUptimeReport PowerShell 脚本!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯