桌面运维排障手册 — Windows 系统篇
两年一线运维经验沉淀,覆盖 Windows 系统日常排障全场景。
一、蓝屏 (BSOD) 速查表
| 错误代码 | 常见原因 | 解决 |
|---|---|---|
INACCESSIBLE_BOOT_DEVICE | 硬盘控制器驱动不匹配 | BIOS 切换 AHCI/IDE → 安全模式重装驱动 |
MEMORY_MANAGEMENT | 内存条故障 / 驱动内存泄漏 | 逐条拔插内存 → WinDbg 分析 dump → sfc /scannow |
DRIVER_IRQL_NOT_LESS_OR_EQUAL | 网卡/显卡驱动冲突 | 安全模式 → 设备管理器回滚最近驱动 |
CRITICAL_PROCESS_DIED | 系统关键进程被终止 | sfc /scannow → DISM /RestoreHealth |
KERNEL_SECURITY_CHECK_FAILURE | 驱动签名/安全软件冲突 | 卸载第三方安全软件/虚拟光驱 |
UNMOUNTABLE_BOOT_VOLUME | 文件系统损坏 | PE → chkdsk C: /f /r |
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED | 驱动程序异常 | 安全模式卸载最近安装的驱动/软件 |
NTFS_FILE_SYSTEM | NTFS 文件系统损坏 / 硬盘坏道 | chkdsk C: /f /r → CrystalDiskInfo 看 SMART |
PAGE_FAULT_IN_NONPAGED_AREA | 内存故障 / 虚拟内存损坏 | 内存诊断 → 重建 pagefile.sys |
DRIVER_POWER_STATE_FAILURE | 驱动电源管理问题 | 更新网卡/显卡驱动 → 关闭快速启动 |
VIDEO_TDR_FAILURE | 显卡驱动超时 | DDU 彻底卸载显卡驱动 → 重装 |
DPC_WATCHDOG_VIOLATION | SSD 固件问题(常见于 NVMe) | 更新 SSD 固件 → 更新存储控制器驱动 |
通用排查步骤:
- 记录错误代码(拍照,记具体文字)
- 安全模式能进 → 最近安装的驱动/软件问题
- 进不了安全模式 → PE →
chkdsk→DISM - 用 BlueScreenView 分析
C:\Windows\Minidump\*.dmp
二、系统启动与引导修复
“Bootmgr is missing” / “Missing operating system”
:: PE 启动 → 命令行
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
“Windows 无法启动。最近的硬件或软件更改…”
:: 进入恢复环境 → 高级选项 → 命令提示符
bcdedit /enum # 查看引导项
bcdedit /set {default} safeboot minimal # 强制安全模式启动
:: 修复后取消:
bcdedit /deletevalue {default} safeboot
开机卡在自动修复循环
:: 进入命令提示符
bcdedit /set {default} recoveryenabled no # 禁用自动修复
chkdsk C: /f /r
sfc /scannow
三、Windows 更新故障
| 问题 | 解决 |
|---|---|
| 更新进度条卡住不动 | 硬重启 → 进系统后会回滚 → 清缓存后重试 |
报错 0x80070002 | 清理 SoftwareDistribution → DISM 修复 |
报错 0x80070422 | 检查 Windows Update 服务是否被禁用 → services.msc |
报错 0x8024402C | 代理设置错误 → netsh winhttp reset proxy |
| 更新后反复回滚 | 卸载最近安装的补丁 → 暂停更新 → 等微软修复 |
| 更新后打印机/软件异常 | 卸载 KBxxxxxx → wusa /uninstall /kb:xxxxxx |
:: 通用清理流程
net stop wuauserv & net stop bits & net stop cryptsvc
del /f /s /q C:\Windows\SoftwareDistribution\*
del /f /s /q C:\Windows\System32\catroot2\*
net start wuauserv & net start bits & net start cryptsvc
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
四、磁盘空间分析与清理
:: 快速定位大文件夹
du -sh C:\* | sort -rh | head -15 # Git Bash / WSL
:: 或用 WinDirStat / TreeSize / WizTree
:: 常见元凶(按吃掉空间的概率排序)
C:\Windows\Temp\ # 临时文件 → 全删
C:\Windows\SoftwareDistribution\ # 更新缓存 → 安全删除
C:\Windows\WinSxS\ # 组件存储 → DISM 清理
C:\Users\*\AppData\Local\Temp\ # 用户临时文件
C:\Windows\Logs\CBS\ # CBS 日志膨胀(可安全删除)
C:\Windows\Installer\ # 补丁卸载缓存(谨慎)
C:\Windows\System32\LogFiles\ # IIS 日志(如果装了 IIS)
C:\ProgramData\Microsoft\Windows\WER\ # 错误报告存档
C:\hiberfil.sys # 休眠文件 → powercfg -h off
C:\pagefile.sys # 页面文件
:: 安全清理
cleanmgr # 磁盘清理(选"清理系统文件")
DISM /Online /Cleanup-Image /StartComponentCleanup /ResetBase
已删除文件但空间未释放?
# 进程仍持有文件句柄
handle64.exe -a | findstr deleted # Sysinternals Handle
# 找到持有进程 → 重启该进程或 close 句柄
五、用户配置文件损坏
现象: 登录后桌面空白/开始菜单不工作/提示”以临时配置文件登录”
步骤:
1. 重启 → 是否恢复?(有时重启就自动重建了)
2. 注册表检查:
regedit → HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
查找以 .bak 结尾的项 → 删除 .bak 后缀(或删除该项让系统重建)
3. 域环境:删除本机缓存的用户配置文件
此电脑 → 属性 → 高级系统设置 → 用户配置文件 → 设置 → 删除
4. 重建后检查桌面/文档/收藏夹是否有数据丢失(通常备份在 C:\Users\xxx.OLD\)
六、开机自启管理
:: 查看所有启动项
msconfig → 启动 → 打开任务管理器
任务管理器 → 启动 → 禁用不需要的
:: 更多启动项位置(有些软件藏在这里)
C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\
regedit → HKCU\Software\Microsoft\Windows\CurrentVersion\Run
regedit → HKLM\Software\Microsoft\Windows\CurrentVersion\Run
任务计划程序 → taskschd.msc
服务 → services.msc → 启动类型设为"自动"的服务
:: 高级工具
Autoruns (Sysinternals) # 最全面的启动项查看工具
七、系统文件修复三板斧
sfc /scannow # 系统文件检查修复
DISM /Online /Cleanup-Image /RestoreHealth # 从 Windows Update 修复映像
DISM /Online /Cleanup-Image /RestoreHealth /Source:D:\sources\install.wim /LimitAccess # 从本地 ISO 修复
八、系统性能问题排查
CPU 高:
任务管理器 → 按 CPU 排序 → 找高 CPU 进程
常见原因:
- Windows Update 后台安装 → 让它跑完
- 杀毒软件全盘扫描 → 暂停或排除目录
- Microsoft Compatibility Telemetry → 禁用 DiagTrack 服务
- Search Indexer → 减少索引范围或暂停
- 浏览器标签页太多 → 关掉一些
内存高:
任务管理器 → 性能 → 内存
- "使用中(已压缩)"高 → 正常,是内存压缩机制
- "分页缓冲池"异常高 → 内存泄漏驱动 → poolmon 定位
- 非分页池高 → 驱动 bug → 更新所有驱动
磁盘 100%:
常见原因:
- Superfetch/SysMain 服务(机械盘常见)→ 停用该服务
- Windows Search → 停用
- 磁盘即将损坏 → CrystalDiskInfo → 05/C5/C6 有值 → 赶紧换
- 虚拟内存不足 → 加物理内存或扩大 pagefile
九、系统还原与重置
:: 创建还原点
wmic.exe /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint "ManualRestore", 100, 7
:: 查看可用还原点
vssadmin list shadows
:: 系统重置(保留个人文件)
系统 → 恢复 → 重置此电脑 → 保留我的文件
:: 系统重置(完全清除)
系统 → 恢复 → 重置此电脑 → 删除所有内容
:: 从云下载重置(Win11)
系统 → 恢复 → 重置此电脑 → 云下载
十、输入法故障
| 问题 | 解决 |
|---|---|
| 输入法切换不出来 | ctfmon.exe 可能没运行 → 运行 C:\Windows\System32\ctfmon.exe |
| 输入法栏消失 | 设置 → 时间和语言 → 语言 → 选项 → 添加/恢复输入法 |
| 中文输入法打出乱码 | 清除输入法用户词库 → 或重装输入法 |
| Win+Space 无法切换 | 检查语言设置是否只剩一种语言 |
| 特定应用打不出中文 | 腾讯系游戏常见 → 切换为兼容模式运行 / 更换输入法 |
十一、注册表常见操作
:: 备份注册表
reg export HKCU\Software\xxx backup.reg
:: 查看某软件的注册表项
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall /s | findstr "软件名"
:: 修复注册表权限(如果某键值无法修改)
regedit → 右键该项 → 权限 → 添加当前用户完全控制
:: 快速跳转到常用位置
HKCU\Software\Microsoft\Windows\CurrentVersion\Run # 用户启动项
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList # 用户配置文件列表
十二、运维自动化 — 常用 PowerShell 脚本
# 批量获取系统信息
Get-ComputerInfo | Select WindowsVersion,OsName,CsTotalVisibleMemorySize,CsProcessors
# 检查所有服务状态(只看停止的自动服务)
Get-Service | Where-Object {$_.StartType -eq "Automatic" -and $_.Status -ne "Running"}
# 检查最近安装的补丁
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 20
# 检查磁盘健康状态
Get-PhysicalDisk | Select-Object FriendlyName,HealthStatus,OperationalStatus,MediaType
# 导出已安装软件列表
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*,
HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
Where-Object {$_.DisplayName -ne $null} |
Select-Object DisplayName,DisplayVersion,Publisher |
Sort-Object DisplayName |
Export-Csv -Path installed.csv -NoTypeInformation
# 远程关机/重启
Restart-Computer -ComputerName "PC-Name" -Force -Wait
Stop-Computer -ComputerName "PC-Name" -Force
# 重置网络栈
netsh int ip reset
netsh winsock reset
ipconfig /flushdns
十三、高频命令一页速查
Windows (CMD)
ipconfig /all # 网络全貌
ipconfig /release && ipconfig /renew # 重新获取 IP
ipconfig /flushdns # 清 DNS
ping -t 8.8.8.8 # 长 ping
tracert -d 8.8.8.8 # 路由追踪
netstat -ano | findstr :443 # 端口占用
gpupdate /force # 刷新组策略
gpresult /r # GPO 结果
sfc /scannow # 系统文件修复
DISM /Online /Cleanup-Image /RestoreHealth # 系统映像修复
chkdsk C: /f /r # 磁盘检查
tasklist | findstr "xxx" # 查进程
taskkill /f /pid 1234 # 杀进程
systeminfo # 系统信息+补丁
net user %username% /domain # 域用户信息
whoami /fqdn # 当前域用户
nltest /dsgetdc:domain.com # 查找域控
set # 查看登录服务器
netsh wlan show interfaces # WiFi 详情
net use # 当前网络连接
Linux
ping -c 4 8.8.8.8 # ping 4 次
ss -tlnp # 监听端口
ss -antp # 所有 TCP 连接
ip addr show # IP 信息
ip route show # 路由表
dig example.com # DNS 查询
traceroute -n 8.8.8.8 # 路由追踪
df -h # 磁盘空间
du -sh /* | sort -rh | head # 目录大小
free -h # 内存
top # 进程
ps aux --sort=-%mem | head # 内存大户
dmesg -T | tail -50 # 内核日志
journalctl -u nginx -f # 服务日志
systemctl status nginx # 服务状态