商城首页欢迎来到中国正版软件门户

您的位置:首页 >如何在Windows中查看系统总共运行了多长时间 查询电脑开机时长

如何在Windows中查看系统总共运行了多长时间 查询电脑开机时长

  发布于2026-04-25 阅读(0)

扫一扫,手机访问

如何在Windows中查看系统总共运行了多长时间 查询电脑开机时长

如何在windows中查看系统总共运行了多长时间 查询电脑开机时长

想知道你的Windows电脑从“出生”到现在,总共“清醒”了多久吗?这可不是任务管理器里那个“运行时间”能回答的——它只告诉你这次开机后连续工作了多久。要计算系统自安装以来所有开机时段的累计“工龄”,我们需要扮演一回“时间侦探”,从系统日志里把每一次启动和关机的记录都找出来,然后一段一段地累加。

一、通过事件查看器提取全部开机与关机事件

Windows系统本身就是个忠实的记录员,每一次启动和关机都被它记在了“小本本”——事件查看器里。关键就在于识别这几个事件ID:系统启动(ID 6005)、正常关机(ID 6006)、意外断电(ID 6008)以及计划重启(ID 1074)。通过计算这些事件时间戳的差值,我们就能拼凑出完整的运行时间图谱。

具体操作其实并不复杂:

1、按下Win + R,输入eventvwr.msc并回车,打开事件查看器。

2、在左侧导航栏,依次展开Windows 日志 → 系统

3、在右侧操作面板点击“筛选当前日志”

4、在“事件ID”栏中输入:6005,6006,6008,1074(注意用英文逗号分隔),然后点击确定。

5、筛选出的结果,记得按“TimeCreated”列升序排列。接下来就是“连连看”了:每一个6005(开机)事件后面,紧跟着的如果是6006(正常关机),那就构成一个完整的运行周期;如果跟着的是6008(意外断电),那这段运行虽然结局不太完美,但时间也得算上。至于最后一个没有配对的6005,那就是你当前正在进行的这次开机了。

二、利用 PowerShell 计算累计开机时长

手动在日志里一段段计算显然太费劲了。这时候,PowerShell脚本的优势就体现出来了——它能自动帮我们完成事件的配对、时间差计算和累加。整个过程,其实就是把上面手动操作的逻辑,用代码自动化。

跟着下面几步走:

1、首先,用管理员身份启动Windows Terminal或PowerShell。

2、输入以下命令,先把所有相关事件抓取出来并排好序:Get-WinEvent -FilterHashtable @{LogName='System'; ID=6005,6006,6008,1074} -ErrorAction SilentlyContinue | Sort-Object TimeCreated

3、为了后续处理,最好把结果保存到变量里:$events = Get-WinEvent -FilterHashtable @{LogName='System'; ID=6005,6006,6008,1074} -ErrorAction SilentlyContinue | Sort-Object TimeCreated

4、最后,运行这个核心的计算脚本。它会遍历事件列表,为每个6005事件寻找下一个关机事件(6006或6008),计算时长并累加:$uptimeSeconds = 0; for ($i = 0; $i -lt $events.Count - 1; $i++) { if ($events[$i].Id -eq 6005) { $start = $events[$i].TimeCreated; $end = $null; for ($j = $i + 1; $j -lt $events.Count; $j++) { if ($events[$j].Id -in 6006,6008) { $end = $events[$j].TimeCreated; break; } } if ($end) { $uptimeSeconds += ($end - $start).TotalSeconds; $i = $j; } } }; $uptimeSeconds

命令执行后,最终输出的那个数字,就是系统历史累计运行的总秒数了。

三、使用 systeminfo 命令结合日志推算历史总运行时间

有时候,我们还需要一个时间基准点。systeminfo命令虽然不直接提供累计运行时间,但它能告诉我们一个关键信息:“系统安装日期”。这个日期,就是系统生命的起点。

1、按下Win + R,输入cmd并回车,打开命令提示符。

2、输入命令:systeminfo | findstr "系统安装日期" 并回车。

3、屏幕上会显示类似“系统安装日期: 2023/08/15, 14:22:03”的信息,把它记下来。

4、然后,回到事件查看器,在筛选出的日志里找到最早的一条ID 6005事件。它的发生时间,就是系统有记录可查的第一次启动。

5、这里有个细节需要注意:如果这个“最早的6005时间”比“系统安装日期”要晚,那说明更早的日志已经被系统清理掉了。在这种情况下,我们的累计计算就只能从这个最早的6005时间开始算起,之前的“空白期”就无法统计了。

四、借助第三方工具解析Windows日志数据库

对于追求更全面、更自动化分析的用户,特别是需要处理大量归档日志的情况,原生的PowerShell可能就显得有些吃力了。Windows事件日志实际存储在%SystemRoot%\System32\winevt\Logs\目录下,是二进制的.evtx文件。这时候,一些专业的日志分析工具就能派上大用场。

1、你可以选择像EvtxECmd这样的开源工具,或者功能更强大的商业软件如Log Parser Studio。

2、以管理员权限运行这些工具,并指向系统日志路径:%SystemRoot%\System32\winevt\Logs\System.evtx。如果存在历史归档的.evtx文件,也一并添加进去。

3、在工具中配置查询,筛选出事件ID为6005、6006、6008、1074的所有记录。

4、将查询结果导出为CSV格式,然后利用Excel的公式功能,或者再写一段简单的PowerShell脚本,就能轻松完成时间差的批量计算与总和,得到一份清晰的总运行时长报表。

五、通过注册表读取系统安装时间辅助估算

除了systeminfo,系统安装时间还有一个更“底层”的记录位置——Windows注册表。它可以作为校验systeminfo结果的一个可靠来源,同时也为我们计算理论最大运行时长提供了一个绝对基准。

1、按下Win + R,输入regedit并回车,打开注册表编辑器。

2、导航到这个路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

3、在右侧窗格中,找到一个名为InstallDate的DWORD(32位)值。

4、双击它,你会看到一串十六进制数值。这串数字其实是Unix时间戳(自1970年1月1日以来的秒数)。你需要先把它转换成十进制数。

5、例如,值显示为0x64b8c9f3,转换成十进制就是1689999859。利用在线转换工具或编程函数,可以得知这个时间戳对应UTC时间2023年6月20日 10:24:19。将其转换为你所在的时区时间后,与当前时间相减,得到的差值,就是从系统安装至今理论上的最大可能总时间(当然,这个值包含了所有关机的时间,需要结合前面的日志分析才能得出真正的“开机”时长)。

本文转载于:https://www.php.cn/faq/2355842.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注