跳转到内容

开机那一分钟去哪了

核验于 2 分钟阅读

从 Windows 事件里读出真实开机时间线、看懂启动影响评级,别再怪错对象。

测试环境Pro (26H2) / Server · 版本号 26300.9457 / 26100.33650 · x64
E1
版本号
26300.9457 / 26100.33650
版本
Pro (26H2) / Server
架构
x64
支持
文档(E1)
证据
E1官方文档
核验日期
2026-10-29
页面类型
方法

“开机时间”是四个阶段,大多数人测错了那个:

阶段 发生什么 典型耗时
固件/POST 内存训练、设备初始化 3–20 秒,关掉快速启动更久
引导程序 → 内核 驱动初始化 2–8 秒
会话初始化 服务与登录 5–30 秒
启动应用 Run 键、任务、启动文件夹 0–180 秒

快速启动(hiberboot)跳过了前两个阶段的大部分,所以开了它的机器可能报告“12 秒开机”,却依然迟迟不可用——慢的部分被挪到了会话初始化与启动应用。

Windows 自己会记录启动性能:

终端窗口
Get-WinEvent -LogName 'Microsoft-Windows-Diagnostics-Performance/Operational' |
Where-Object Id -in 100,101,102,103,109,110 |
Select-Object TimeCreated,Id,LevelDisplayName,
@{n='BootMs';e={($_.Properties[4].Value)}} |
Select-Object -First 15
事件 含义
100 启动性能监控开始
101 这次启动很慢——你要找的就是它
102 某应用启动超过 30 秒
103 某服务启动超过 30 秒
109 某设备初始化超过 30 秒
110 后台优化耗时过长

事件 101 带毫秒级启动时长;102/103/109 会点出具体的应用、服务或设备——那才是“为什么慢”的答案。

终端窗口
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Diagnostics-Performance/Operational'; Id=100,101,102,103,106,109,110} -MaxEvents 30 |
Select-Object TimeCreated,Id,Message | Format-List

任务管理器启动应用页给每项标低/中/高。评级来自之前几次启动测得的磁盘+CPU 时间——是真数据,不是猜的。

  • 高影响的条目值得质疑。
  • 没有评级的条目启动次数还不够。
  • StartupApproved 注册表键保存启用/禁用状态,界面切换的就是它。
终端窗口
Get-CimInstance Win32_StartupCommand | Select-Object Name,Command,Location,User
位置 任务管理器能看到?
HKCU/HKLM ...\Run 能
启动文件夹 能
带登录触发器的计划任务 不能
自动启动的服务 不能

这就是为什么把所有条目都禁用后机器还是慢:剩下的负载在服务与计划任务里。见计划任务与唤醒定时器和服务。

  • 快速启动 + 慢盘:恢复时要读很大的 hiberfil。
  • 配置文件在网络共享上(域环境):登录在等网络。
  • 杀毒软件在登录时全盘扫描。
  • Windows 更新在启动阶段收尾。
  1. 读 101/102/103/109——拿到名字,而不是感觉。
  2. 禁用你认识的高影响启动应用。
  3. 查带登录触发器的计划任务。
  4. 最后才考虑服务。
  5. 用同一条查询、同样条件复测。

E1。事件 ID 与字段有微软文档依据;实验室虚拟机从虚拟磁盘启动,因此不发布启动耗时数字。

来源