<p>最准、最省事的方式是用PowerShell执行(Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime,直接返回如“7天3小时15分钟22.4秒”的精确运行时长。</p>
直接用 powershell 查看当前连续运行时长,是最准、最省事的方式之一。它调用系统底层接口获取开机时间戳,再自动和现在时间做减法,结果清晰可读,不需要手动换算。
一、快速获取当前运行时长(推荐)
这条命令一步到位,输出格式自然易懂:
- 以管理员或普通用户身份打开 Windows Terminal 或 PowerShell
- 输入并回车执行:(Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime
- 返回类似“7天 3小时 15分钟 22.4秒”的结果,精确到毫秒级
二、单独查看开机时间点(用于交叉验证)
如果你想确认系统到底是哪一刻启动的,可以单独提取时间戳:
- 运行命令:Get-CimInstance Win32_OperatingSystem | Select-Object LastBootUpTime
- 输出是 WMI 格式时间,如 20260529081233.000000+000,代表 2026年5月29日 08:12:33(UTC)
- 可用 [Management.ManagementDateTimeConverter]::ToDateTime() 转成本地可读时间
三、持续监控运行时间变化(简易轮询)
如果需要动态观察 uptime 变化(比如测试重启后是否真稳定),可用循环加延时:
- 执行以下脚本片段(每10秒刷新一次):
while($true) { Clear-Host; (Get-Date) - (Get-CimInstance Win32_OperatingSystem).LastBootUpTime; Start-Sleep -Seconds 10 } - 按 Ctrl+C 停止;注意该操作不消耗明显资源,适合临时盯屏
四、导出历史运行记录(需配合事件日志)
PowerShell 还能帮你从事件查看器中捞出所有开关机记录,算出累计运行时间:
- 运行:$events = Get-WinEvent -FilterHashtable @{LogName='System'; ID=6005,6006,6008} -MaxEvents 500 -ErrorAction SilentlyContinue | Sort-Object TimeCreated
- 后续可遍历 $events,配对每次 6005(开机)与紧随其后的 6006/6008(关机/断电),累加各段时长
- 适合分析长期稳定性,比如判断最近一个月有没有异常断电


















