如何在 Windows 中查看系统总共开机了多少天 统计电脑累计运行时间

雨涛大大_2569

雨涛大大_2569

2026-04-28

516人浏览

原创

windows系统累计开机总天数需通过日志回溯统计:一、事件查看器筛选id6005/6006/6008事件手动累加运行时段;二、powershell脚本自动配对计算总秒数并转为天数;三、性能监视器分析up time归零点估算重启次数;四、注册表installdate与当前时间差得理论最大存活天数;五、logparser工具解析evtx文件精确统计。

如何在 windows 中查看系统总共开机了多少天 统计电脑累计运行时间

如果您需要了解 Windows 系统自首次安装或历史以来累计开机的总天数,而非单次连续运行时长,则不能依赖内核实时计时器(如“正常运行时间”),而需通过日志回溯与事件累加方式统计所有完整开机周期。以下是实现该目标的多种方法:

一、通过事件查看器提取全部开机与关机事件并手动累加

事件查看器完整记录每次系统启动(ID 6005)、正常关机(ID 6006)、意外断电(ID 6008)及计划重启(ID 1074),依据时间戳可逐段计算各次运行持续时间,并将所有有效运行时段(6005 → 6006 或 6005 → 6008)的秒数相加后换算为总天数。

1、按 Win + R 打开“运行”对话框,输入 eventvwr.msc 并回车,启动事件查看器。

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

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

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

5、在结果列表中,按 TimeCreated 列升序排列,从最早一条 ID 6005 开始,查找其后最近的一条 ID 6006 或 ID 6008;若找到 ID 6006,用其时间减去该 ID 6005 时间,得到本次运行秒数;若为 ID 6008,则同样计算差值,视为一次非正常终止的运行周期。

6、将所有计算出的秒数相加,再除以 86400,所得整数即为累计开机总天数(忽略不足一天的尾数)。

二、使用 PowerShell 脚本自动配对事件并输出总天数

PowerShell 可批量读取系统日志中的启动与关机事件,按时间顺序自动配对每组 ID 6005 与其后续首个 ID 6006/6008,计算每段运行时长并求和,最终直接返回以天为单位的累计开机总时长(向下取整)。

1、以管理员身份启动 Windows Terminal(PowerShell)。

2、执行以下命令获取过去 365 天内的相关事件(如需更长时间范围,可修改 -After 参数):
Get-WinEvent -FilterHashtable @{LogName='System'; ID=6005,6006,6008; StartTime=(Get-Date).AddYears(-1)} -ErrorAction SilentlyContinue | Sort-Object TimeCreated

3、粘贴并运行完整脚本:
$events = Get-WinEvent -FilterHashtable @{LogName='System'; ID=6005,6006,6008} -MaxEvents 10000 -ErrorAction SilentlyContinue | Sort-Object TimeCreated;
$uptimeSeconds = 0;
$bootTimes = @();
foreach ($e in $events) { if ($e.Id -eq 6005) { $bootTimes += $e.TimeCreated } elseif ($e.Id -in (6006,6008) -and $bootTimes.Count -gt 0) { $lastBoot = $bootTimes[0]; $uptimeSeconds += ($e.TimeCreated - $lastBoot).TotalSeconds; $bootTimes = $bootTimes[1..($bootTimes.Length-1)] } }; [Math]::Floor($uptimeSeconds / 86400)

4、脚本执行完毕后,终端将直接输出一个整数,即为 累计开机总天数。

三、利用性能监视器导出“System\Up Time”历史采样数据

性能监视器虽仅显示当前会话的秒级计数器(System\Up Time),但若已启用数据收集器集并长期记录该计数器,则可通过分析历史 .blg 文件反推每日峰值变化,识别每次重启导致的计数器归零点,从而统计重启次数并估算最小累计开机天数(假设每次开机至少运行满 1 天)。

1、按 Win + R 输入 perfmon 并回车,打开性能监视器。

2、在左侧导航窗格中,展开 数据收集器集 → 用户定义,检查是否存在已配置并启用的收集器,其计数器包含 System\Up Time。

windows-healing-gateway
windows-healing-gateway

通过任务计划程序自动监控并自修复 Windows 上的 OpenClaw Gateway,具备 AI 诊断和 Telegram 报警功能。

下载

3、若存在有效历史记录,右键对应数据收集器,选择 最新报表 或导出为 CSV。

4、在导出文件中查找 System\Up Time 数值列,定位所有 突降至接近 0 的时间点,每个此类点代表一次系统重启。

5、统计该列中重启发生次数,再加 1(当前会话),即得最小开机次数;若确认每次开机均持续 ≥24 小时,则该数值即为保守估计的 累计开机总天数下限。

四、结合注册表 LastBootUpTime 与系统安装日期粗略估算

注册表中 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate 存储系统首次安装的 Unix 时间戳(自 1970-01-01 起秒数),而 WMI 的 LastBootUpTime 表示最近一次启动时刻;二者差值反映系统存活总时长上限,虽不等于实际开机天数(含关机休眠期),但可作为理论最大值参考。

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

2、导航至路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion。

3、在右侧查找名为 InstallDate 的 DWORD 值,双击查看其十进制数值(例如 1672531200)。

4、打开 PowerShell,执行:$install = [DateTimeOffset]::FromUnixTimeSeconds(1672531200).DateTime; $now = Get-Date; ($now - $install).Days(将 1672531200 替换为实际值)。

5、输出结果为自安装日起至今的总天数,即该系统的 理论最大累计存活天数,实际开机天数必小于此值。

五、使用第三方工具 LogParser 批量解析 evt/evtx 文件精确统计

LogParser 是微软官方提供的命令行日志分析工具,支持 SQL 语法直接查询 Windows 事件日志文件(.evtx),可一次性扫描全部历史日志,精准匹配 ID 6005 与后续关机事件,并自动完成时间差计算与累加,适用于拥有多年系统日志存档的场景。

1、从微软官网下载并安装 LogParser 2.2 工具。

2、以管理员身份打开命令提示符,切换至系统日志所在目录(通常为 %SystemRoot%\System32\winevt\Logs\)。

3、执行以下命令(需先备份日志以防锁定):
LogParser "SELECT COUNT(*) AS BootCount FROM Security.evtx WHERE EventID=4608" -i:EVTX

4、针对系统日志执行更复杂聚合:
LogParser "SELECT QUANTIZE(TimeGenerated, 86400) AS DayBucket, COUNT(*) AS BootsPerDay INTO boots_per_day.csv FROM System.evtx WHERE EventID=6005 GROUP BY DayBucket ORDER BY DayBucket" -i:EVTX -o:CSV

5、打开生成的 boots_per_day.csv,逐行确认每日开机次数;若每日仅 1 次且无缺失,则行数即为 有记录的开机天数;将各日 BootsPerDay 相加,即得总开机次数。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

windows

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.26

3099

3

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.27

2658

6

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

2023.08.01

1448

3

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2439

5

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.08

3230

4

windows自动更新
windows自动更新

Windows操作系统的自动更新功能可以确保系统及时获取最新的补丁和安全更新,以提高系统的稳定性和安全性。然而,有时候我们可能希望暂时或永久地关闭Windows的自动更新功能。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.10

1517

3

windows boot manager
windows boot manager

windows boot manager无法开机的解决方法:1、系统文件损坏,使用Windows安装光盘或USB启动盘进入恢复环境,选择修复计算机,然后选择自动修复;2、引导顺序错误,进入恢复环境,选择命令提示符,输入命令"bootrec /fixboot"和"bootrec /fixmbr",然后重新启动计算机;3、硬件问题,使用硬盘检测工具进行扫描和修复;4、重装操作系统。本专题还提供其他解决

2023.08.28

2417

4

windows锁屏快捷键
windows锁屏快捷键

windows锁屏快捷键是Windows键+L、Ctrl+Alt+Del、Windows键+D、Windows键+P和Windows键+R。本专题为大家提供windows相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.30

4487

5

Window.setInterval()方法
Window.setInterval()方法

Window.setInterval() 方法的基本语法是“window.setInterval(function, delay)”,function是要重复执行的函数或代码块,delay是每次执行之间的时间间隔,以毫秒为单位。本专题为大家提供Window.setInterval()相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

655

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Conan 2 安装指南
Conan 2 安装指南

共0课时 | 0人学习