如何调试 Windows 关机问题?

如何调试 Windows 关机问题?

我使用的是 Windows 10 家庭版。自上次更新以来,电脑关机需要很长时间。以下是我尝试的方法:

  1. 右键单击“开始”
  2. 选择Windows PowerShell(管理员)
  3. 在 UAC 提示上单击“是”
  4. 运行命令shutdown /s /f /t 0

什么都没发生,命令只是挂起,没有返回提示。当我等待大约 15 分钟(!)时,计算机终于关闭了。在此期间,我可以正常使用计算机。

我想调查导致此问题的程序/服务。我检查了事件查看器 ( eventvwr.exe),但我不知道要查看哪个日志。我还检查了任务管理器,但它没有显示占用高 CPU、磁盘或内存使用率的进程。

我该如何调试此问题?

编辑: 我已通过拔掉外部 USB 存储卡读卡器解决了该问题。显然,该设备阻止了计算机关机。但问题仍然存在。我怎么可能通过调试关机过程而不是靠猜测来发现这个问题呢?

答案1

(注意:Windows 正在不断发展,不同版本之间的细节可能有所不同。)

控制关机行为

在跟踪关机之前,我注意到大约 15 分钟的关机等待时间是不正常的 - 通常最多只需几分钟。我建议在注册表中的键下检查 HKEY_CURRENT_USER\Control Panel\Desktop 您是否设置了以下任何一项:

  • WaitToKillAppTimeout:(默认 20 秒)
    打开的应用程序在关闭之前清理并保存其数据的时间。
  • HungAppTimeout:(默认 5 秒)
    Windows 在认为应用程序无响应之前等待多少秒。
  • AutoEndTasks:(默认为 0)
    设置为1在关机时自动关闭程序而不请求您的许可。

有关详细信息,请参阅 控制 Windows 在关机时终止应用程序之前等待的时间

启用详细关机消息

如果未启用详细日志记录,则在您启动、关闭、登录或注销计算机时,只会显示正常状态消息,例如“正在应用您的个人设置...”或“正在应用计算机设置...”。如果启用了详细日志记录,您将收到其他信息,例如“RPCSS 正在启动”或“正在等待计算机组策略完成...”。

要启用详细状态消息:

  • 运行 regedit
  • 定位到以下注册表项: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
  • 创建一个名为的 DWORD 值verbosestatus并将其设置为1

详细追踪关机过程

下面描述的过程和工具也可以用来跟踪启动。

安装工具

  • 下载 Windows 10 SDK 文件winsdksetup.exe
  • 运行它并选择仅安装“Windows 性能工具”(而不是完整安装)
  • 重启。

创建跟踪日志

  • 在以管理员身份运行的命令提示符中,定位到:

      cd %ProgramFiles%\Microsoft Windows Performance Toolkit
    
  • 像这样进行重启跟踪:

      xbootmgr -trace shutdown -traceFlags BASE+DIAG+LATENCY -noPrepReboot
    

    启动后,两分钟内就会产生痕迹。

查看跟踪日志

  • 运行 Windows 性能分析器 ( wpa.exe)
  • 使用菜单文件 > 打开打开文件夹内的跟踪日志
    %ProgramFiles%\Microsoft Windows Performance Toolkit
  • 详细的跟踪可以在“分析”选项卡中找到。
  • 有关具体的关机信息,请使用菜单 型材 > 申请 > 浏览目录并选择“FullBoot.Shutdown.wpaprofile”。

相关内容