文章总结: 文档系统讲解了Windows系统故障排查的常用命令与脚本,涵盖系统状态检查、启动问题、性能问题、网络问题、磁盘问题等多个维度。提供了详细的命令示例、速查表和排查流程图,具有较强的实操指导价值,适合运维人员快速定位和解决系统故障。 综合评分: 85 文章分类: 安全运营,终端安全,实战经验
Windows 系统故障排查命令详解
原创
刘军军 刘军军
运维星火燎原
2026年3月5日 00:00 河北
目录
- 系统状态快速检查
- 启动问题排查
- 性能问题排查
- 网络问题排查
- 磁盘问题排查
- 服务问题排查
- 用户权限问题排查
- 系统日志分析
- 自动化排查脚本
- 故障排查流程图
一、系统状态快速检查
1.1 一键系统健康检查
:: ========== 快速检查脚本 ==========
@echo off
echo ====================================
echo Windows 系统健康检查
echo ====================================
echo.
:: 1. 系统基本信息
echo [1] 系统信息
systeminfo | findstr /C:"OS 名称" /C:"OS 版本" /C:"系统型号"
echo.
:: 2. 运行时间
echo [2] 运行时间
systeminfo | findstr /C:"系统启动时间"
echo.
:: 3. 磁盘空间
echo [3] 磁盘空间
wmic logicaldisk get DeviceID,Size,FreeSpace,FileSystem
echo.
:: 4. 内存使用
echo [4] 内存使用
wmic OS get FreePhysicalMemory,TotalVisibleMemorySize /Value
echo.
:: 5. 关键服务状态
echo [5] 关键服务状态
sc query RpcSs | findstr "STATE"
sc query BITS | findstr "STATE"
sc query wuauserv | findstr "STATE"
echo.
:: 6. 网络连接
echo [6] 网络连接
netstat -ano | findstr "ESTABLISHED" | find /c /v ""
echo.
:: 7. 系统文件检查
echo [7] 系统文件完整性
sfc /verifyonly
echo.
echo ====================================
echo 检查完成
echo ====================================
pause
1.2 系统信息收集命令
:: ========== 完整系统信息 ==========
:: 操作系统信息
systeminfo
ver
wmic os get Caption,Version,Architecture,InstallDate
:: 硬件信息
wmic cpu get Name,NumberOfCores,NumberOfLogicalProcessors,MaxClockSpeed
wmic memorychip get Capacity,Speed,Manufacturer
wmic diskdrive get Model,Size,InterfaceType
wmic bios get SerialNumber,Manufacturer,Version
:: 已安装软件
wmic product get Name,Version,InstallDate
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
:: 启动项
wmic startup get Caption,Command
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
:: 驱动程序
driverquery /v
pnputil /enum-drivers
:: 导出完整报告
systeminfo > C:\report\systeminfo.txt
wmic /output:C:\report\hardware.txt cpu get Name,NumberOfCores
wmic /output:C:\report\memory.txt memorychip get Capacity,Speed
wmic /output:C:\report\disk.txt diskdrive get Model,Size
1.3 系统状态速查表
| | | | | — | — | — | | 检查项 | 命令 | 正常状态 | | 系统版本 | ver | 显示正确版本号 | | 运行时间 | systeminfo | find “启动时间” | 合理范围内 | | CPU 使用 | wmic cpu get loadpercentage | <80% | | 内存使用 | wmic OS get FreePhysicalMemory | 有足够可用内存 | | 磁盘空间 | wmic logicaldisk get Size,FreeSpace | 剩余>10% | | 关键服务 | sc query 服务名 | RUNNING | | 网络连接 | netstat -ano | 正常连接数 | | 系统文件 | sfc /verifyonly | 无损坏 |
二、启动问题排查
2.1 启动故障诊断
:: ========== 启动配置检查 ==========
:: 查看启动配置
bcdedit /enum
:: 查看启动日志
eventvwr.msc
:: 或使用命令行
wevtutil qe System /c:50 /f:text /q:"*[System]"
:: 检查启动项
msconfig
wmic startup get Caption,Command
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
:: 检查服务启动类型
sc queryex type= service
sc qc 服务名
:: 查看上次启动错误
eventvwr.msc
:: 筛选事件 ID: 41, 6008 (意外关机)
2.2 启动修复命令
:: ========== 启动修复 ==========
:: 系统文件修复
sfc /scannow
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
:: 启动修复
bootrec /fixmbr
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd
:: 检查磁盘
chkdsk C: /f /r
:: 修复系统组件
DISM /Online /Cleanup-Image /StartComponentCleanup
:: 重置 Windows 更新组件
net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start wuauserv
net start cryptSvc
net start bits
net start msiserver
2.3 启动问题排查流程
┌─────────────────────────────────────────────────────────────────┐
│ 系统无法启动 │
└─────────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 1. 进入安全模式 (F8/Shift+ 重启) │
│ - 确认是否能进入安全模式 │
└─────────────────────────┬───────────────────────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 能进入 │ │ 不能进入 │ │ 蓝屏 │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
▼ ▼ ▼
检查启动项 使用修复盘 记录错误代码
检查服务 启动修复 分析 dump 文件
│ │ │
└──────────────┼──────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 2. 执行系统修复 │
│ sfc /scannow │
│ DISM /Online /Cleanup-Image /RestoreHealth │
│ chkdsk C: /f /r │
└─────────────────────────────────────────────────────────────────┘
三、性能问题排查
3.1 CPU 占用高排查
:: ========== CPU 使用率检查 ==========
:: 查看 CPU 使用率
wmic cpu get loadpercentage
wmic cpu get Name,NumberOfCores,NumberOfLogicalProcessors,LoadPercentage
:: 查看进程 CPU 使用
tasklist /v | findstr /i "cpu"
tasklist /fo csv | findstr /i "cpu"
:: 查看占用 CPU 最高的进程
powershell "Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name,CPU"
:: 实时监控
typeperf "\Processor(_Total)\% Processor Time" -si 5 -sc 12
:: 终止高占用进程
tasklist | findstr "进程名"
taskkill /PID 进程号 /F
taskkill /IM 进程名.exe /F
:: 检查启动项(可能占用 CPU)
wmic startup get Caption,Command
msconfig
3.2 内存占用高排查
:: ========== 内存使用检查 ==========
:: 查看内存总量和可用量
wmic OS get FreePhysicalMemory,TotalVisibleMemorySize /Value
systeminfo | findstr /C:"物理内存"
:: 查看进程内存使用
tasklist /v
tasklist /fo csv
:: 查看内存使用前 10 进程
powershell "Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10 Name,@{N='Memory(MB)';E={[math]::Round($_.WorkingSet/1MB,2)}}"
:: 查看分页池和非分页池
poolmon.exe (需要 Windows SDK)
:: 检查内存泄漏
driverquery /v | findstr /i "memory"
:: 清理内存(临时)
emptystandby.exe (第三方工具)
:: 或重启相关服务
3.3 磁盘 IO 高排查
:: ========== 磁盘 IO 检查 ==========
:: 查看磁盘使用率
wmic logicaldisk get DeviceID,Size,FreeSpace
:: 查看磁盘性能
typeperf "\PhysicalDisk(_Total)\% Disk Time" -si 5 -sc 12
typeperf "\PhysicalDisk(_Total)\Avg. Disk Queue Length" -si 5 -sc 12
:: 查看磁盘活动进程
resource monitor (resmon)
:: 检查磁盘错误
chkdsk C: /f
wmic diskdrive get Status
:: 查看大文件
powershell "Get-ChildItem C:\ -Recurse -ErrorAction SilentlyContinue | Where-Object {$_.Length -gt 100MB} | Sort-Object Length -Descending | Select-Object -First 20 FullName,@{N='Size(MB)';E={[math]::Round($_.Length/1MB,2)}}"
:: 磁盘碎片检查
defrag C: /A
:: 清理磁盘空间
cleanmgr
3.4 系统性能监控命令
:: ========== 性能监视器 ==========
:: 启动性能监视器
perfmon
:: 启动资源监视器
resmon
:: 创建性能计数器日志
logman create counter "SystemMonitor" -o "C:\perf\counter.blg" -c "\Processor(_Total)\% Processor Time""\Memory\Available MBytes""\PhysicalDisk(_Total)\% Disk Time" -si 00:01:00
:: 启动日志
logman start"SystemMonitor"
:: 停止日志
logman stop"SystemMonitor"
:: 查看日志
logman query"SystemMonitor"
:: 导出性能报告
perfmon /report
四、网络问题排查
4.1 网络连通性排查
:: ========== 网络连通性检查 ==========
:: 1. 检查本地网络配置
ipconfig /all
getmac /v
:: 2. 测试网关连通性
ping 192.168.1.1 -n 4
ping 192.168.1.1 -t (持续测试)
:: 3. 测试外网连通性
ping 8.8.8.8 -n 4
ping www.baidu.com -n 4
:: 4. 路由跟踪
tracert www.baidu.com
pathping www.baidu.com
:: 5. DNS 测试
nslookup www.baidu.com
nslookup -type=mx baidu.com
:: 6. 端口测试
telnet 192.168.1.10080
Test-NetConnection 192.168.1.100 -Port 80 (PowerShell)
:: 7. 网络连接统计
netstat -ano
netstat -ano | findstr "ESTABLISHED"
netstat -ano | findstr ":80"
4.2 网络故障修复命令
:: ========== 网络修复 ==========
:: 释放和更新 IP
ipconfig /release
ipconfig /renew
:: 清理 DNS 缓存
ipconfig /flushdns
ipconfig /registerdns
:: 重置 Winsock
netsh winsock reset
:: 重置 TCP/IP
netsh int ip reset
netsh int ipv4 reset
netsh int ipv6 reset
:: 重置网络
netsh advfirewall reset
:: 重启网络服务
net stop lanmanworkstation
net start lanmanworkstation
:: 禁用/启用网卡
netsh interfacesetinterface"以太网"disable
netsh interfacesetinterface"以太网"enable
:: 查看网络配置
netsh interface ip show config
netsh wlan show profiles
4.3 网络问题排查流程
:: ========== 网络诊断脚本 ==========
@echo off
echo ====================================
echo 网络故障排查
echo ====================================
echo.
:: 1. 检查网卡状态
echo [1] 网卡状态
ipconfig | findstr /C:"IPv4" /C:"媒体状态"
echo.
:: 2. 测试网关
echo [2] 网关测试
for /f "tokens=2" %%i in ('ipconfig ^| findstr /C:"默认网关"') do (
set gateway=%%i
ping %%i -n 2
)
echo.
:: 3. 测试 DNS
echo [3] DNS 测试
nslookup www.baidu.com
echo.
:: 4. 测试外网
echo [4] 外网测试
ping 8.8.8.8 -n 2
echo.
:: 5. 检查端口
echo [5] 监听端口
netstat -ano | findstr "LISTENING"
echo.
:: 6. 检查防火墙
echo [6] 防火墙状态
netsh advfirewall show allprofiles state
echo.
echo ====================================
pause
五、磁盘问题排查
5.1 磁盘健康检查
:: ========== 磁盘健康检查 ==========
:: 检查磁盘状态
wmic diskdrive get Status
wmic diskdrive get Model,Status,Size
:: 检查磁盘错误
chkdsk C: /f
chkdsk C: /f /r
chkdsk C: /x
:: 检查磁盘 SMART 状态
wmic diskdrive get Status,Model,SerialNumber
:: 查看磁盘空间
wmic logicaldisk get DeviceID,Size,FreeSpace,FileSystem
fsutil volume diskfree C:
:: 查看磁盘分区
diskpart
list disk
list partition
exit
:: 检查磁盘性能
typeperf "\PhysicalDisk(_Total)\% Disk Time" -si 5 -sc 12
typeperf "\PhysicalDisk(_Total)\Avg. Disk Queue Length" -si 5 -sc 12
5.2 磁盘空间清理
:: ========== 磁盘清理 ==========
:: 清理临时文件
del /f /s /q %temp%\*
del /f /s /q C:\Windows\Temp\*
:: 清理 Windows 更新缓存
net stop wuauserv
del /f /s /q C:\Windows\SoftwareDistribution\Download\*
net start wuauserv
:: 清理系统文件
cleanmgr /sageset:1
cleanmgr /sagerun:1
:: 清理旧版本 Windows
Dism.exe /online /Cleanup-Image /StartComponentCleanup
Dism.exe /online /Cleanup-Image /SPSuperseded
:: 清理休眠文件
powercfg /h off
:: 清理页面文件(需要重启)
wmic pagefileset delete
wmic pagefileset create name="C:\pagefile.sys"
:: 查找大文件
powershell "Get-ChildItem C:\ -Recurse -ErrorAction SilentlyContinue | Where-Object {$_.Length -gt 500MB} | Sort-Object Length -Descending | Select-Object -First 10 FullName,@{N='Size(GB)';E={[math]::Round($_.Length/1GB,2)}}"
5.3 磁盘故障排查流程
┌─────────────────────────────────────────────────────────────────┐
│ 磁盘问题报告 │
└─────────────────────────┬───────────────────────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 空间不足 │ │ 读写错误 │ │ 性能下降 │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
▼ ▼ ▼
wmic 检查空间 chkdsk 检查 typeperf 监控
清理临时文件 修复错误 查找瓶颈进程
删除大文件 备份数据 优化配置
│ │ │
└──────────────┼──────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 验证修复 │
│ - 重新检查磁盘状态 │
│ - 监控系统性能 │
│ - 建立定期维护计划 │
└─────────────────────────────────────────────────────────────────┘
六、服务问题排查
6.1 服务状态检查
:: ========== 服务状态检查 ==========
:: 查看所有服务
sc query
sc query state= all
:: 查看运行中的服务
sc query type= service state= running
:: 查看停止的服务
sc query type= service state= stopped
:: 查看特定服务
sc query wuauserv
sc queryex wuauserv
:: 查看服务配置
sc qc wuauserv
sc qdescription wuauserv
:: 查看服务依赖
sc enumdepend wuauserv
:: 查看失败服务
sc queryex type= service | findstr "STOPPED"
6.2 服务故障修复
:: ========== 服务修复 ==========
:: 启动服务
net start 服务名
sc start 服务名
:: 停止服务
net stop 服务名
sc stop 服务名
:: 重启服务
net stop 服务名 && net start 服务名
:: 修改启动类型
sc config 服务名 start= auto :: 自动
sc config 服务名 start= demand :: 手动
sc config 服务名 start= disabled :: 禁用
:: 修改服务账户
sc config 服务名 obj= "NT Authority\LocalService"
:: 恢复服务默认配置
sc failure 服务名 reset= 86400 actions= restart/60000/restart/60000/restart/60000
:: 重建服务
sc delete 服务名
sc create 服务名 binPath= "C:\path\to\service.exe"
:: 检查服务日志
eventvwr.msc
:: 筛选:应用程序和服务日志 -> 系统
6.3 关键服务检查列表
:: ========== 关键服务状态检查 ==========
@echo off
echo ====================================
echo 关键服务状态检查
echo ====================================
echo.
set services=RpcSs BITS wuauserv EventLog PlugPlay Winmgmt lanmanworkstation
for %%s in (%services%) do (
echo 服务:%%s
sc query %%s | findstr "STATE"
echo.
)
echo ====================================
pause
| | | | | — | — | — | | 服务名 | 说明 | 必须状态 | | RpcSs | RPC 服务 | RUNNING | | EventLog | 事件日志 | RUNNING | | PlugPlay | 即插即用 | RUNNING | | Winmgmt | WMI 服务 | RUNNING | | BITS | 后台传输 | RUNNING | | wuauserv | Windows 更新 | 可选 | | lanmanworkstation | 工作站服务 | RUNNING | | Dhcp | DHCP 客户端 | RUNNING | | Dnscache | DNS 客户端 | RUNNING |
七、用户权限问题排查
7.1 用户权限检查
:: ========== 用户权限检查 ==========
:: 查看当前用户
whoami
whoami /all
whoami /priv
whoami /groups
:: 查看用户详细信息
net user 用户名
net user 用户名 /domain (域环境)
:: 查看用户所属组
net user 用户名 | findstr "本地组成员"
whoami /groups
:: 查看管理员组成员
net localgroup administrators
:: 查看用户权限
whoami /priv
:: 检查 UAC 状态
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA
:: 以管理员身份运行
runas /user:administrator cmd
7.2 文件权限检查
:: ========== 文件权限检查 ==========
:: 查看文件权限
icacls C:\path\to\file
icacls C:\path\to\folder /t
:: 查看文件所有者
dir /q C:\path\to\file
takeown /f C:\path\to\file
:: 修复文件权限
icacls C:\path\to\folder /reset /t /c /l
:: 授予权限
icacls C:\path\to\file /grant 用户名:F
icacls C:\path\to\file /grant 用户名:R
:: 删除权限
icacls C:\path\to\file /remove 用户名
:: 获取所有权
takeown /f C:\path\to\file
takeown /f C:\path\to\folder /r /d y
:: 检查共享权限
net share
net share 共享名
7.3 权限问题排查流程
:: ========== 权限排查脚本 ==========
@echo off
echo ====================================
echo 权限问题排查
echo ====================================
echo.
:: 1. 检查当前用户
echo [1] 当前用户
whoami
whoami /groups | findstr "S-1-5-32-544" (检查是否管理员)
echo.
:: 2. 检查 UAC
echo [2] UAC 状态
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA
echo.
:: 3. 检查文件权限
echo [3] 文件权限
set target=C:\test
if exist %target% (
icacls %target%
) else (
echo 目标路径不存在
)
echo.
:: 4. 检查服务权限
echo [4] 服务权限
sc sdshow 服务名
echo.
echo ====================================
pause
八、系统日志分析
8.1 事件日志查看
:: ========== 事件日志查看 ==========
:: 打开事件查看器
eventvwr.msc
:: 命令行查看日志
wevtutil qe System /c:50 /f:text
wevtutil qe Application /c:50 /f:text
:: 查看特定事件 ID
wevtutil qe System /q:"*[System]" /c:10 /f:text
wevtutil qe System /q:"*[System]" /c:10 /f:text
:: 查看错误日志
wevtutil qe System /q:"*[System[Level=2]]" /c:50 /f:text
wevtutil qe Application /q:"*[System[Level=2]]" /c:50 /f:text
:: 查看最近关机事件
wevtutil qe System /q:"*[System]" /c:10 /f:text
:: 导出日志
wevtutil epl System C:\logs\System.evtx
wevtutil epl Application C:\logs\Application.evtx
:: 清除日志
wevtutil cl System
wevtutil cl Application
8.2 关键事件 ID 说明
| | | | | — | — | — | | 事件 ID | 来源 | 说明 | | 41 | Kernel-Power | 系统意外关机 | | 6005 | EventLog | 事件日志服务启动(开机) | | 6006 | EventLog | 事件日志服务停止(关机) | | 6008 | EventLog | 上次关机是意外的 | | 1074 | User32 | 应用程序发起的关机 | | 4104 | PowerShell | PowerShell 脚本执行 | | 7036 | Service Control Manager | 服务状态更改 | | 1001 | BugCheck | 蓝屏错误 | | 6009 | EventLog | 操作系统版本信息 |
8.3 日志分析脚本
:: ========== 日志分析脚本 ==========
@echo off
echo ====================================
echo 系统日志分析
echo ====================================
echo.
:: 1. 最近错误事件
echo [1] 最近错误事件 (System)
wevtutil qe System /q:"*[System[Level=2]]" /c:10 /f:text | findstr /C:"TimeCreated" /C:"Message"
echo.
:: 2. 意外关机事件
echo [2] 意外关机事件
wevtutil qe System /q:"*[System]" /c:5 /f:text | findstr /C:"TimeCreated"
echo.
:: 3. 服务失败事件
echo [3] 服务失败事件
wevtutil qe System /q:"*[System]" /c:10 /f:text | findstr /C:"TimeCreated" /C:"Message"
echo.
:: 4. 应用程序错误
echo [4] 应用程序错误
wevtutil qe Application /q:"*[System[Level=2]]" /c:10 /f:text | findstr /C:"TimeCreated" /C:"Message"
echo.
echo ====================================
pause
九、自动化排查脚本
9.1 综合故障排查脚本
:: ========== 系统故障排查脚本 ==========
:: 文件名:system_diagnosis.bat
:: 需要管理员权限运行
@echo off
title 系统故障排查工具
color 0a
set LOG_DIR=C:\Diagnosis
set LOG_FILE=%LOG_DIR%\diagnosis_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%.log
set LOG_FILE=%LOG_FILE: =0%
if not exist %LOG_DIR% mkdir %LOG_DIR%
echo ==================================== > %LOG_FILE%
echo 系统故障排查报告 >> %LOG_FILE%
echo 时间:%date% %time% >> %LOG_FILE%
echo ==================================== >> %LOG_FILE%
echo.
:: 记录到屏幕和文件
setlocal EnableDelayedExpansion
for /f"delims=" %%a in ('echo ^| findstr /n "^"') doset"LF=%%a"
set"LF=!LF:~0,1!"
:: 1. 系统信息
echo [1] 系统信息
echo [1] 系统信息 >> %LOG_FILE%
systeminfo | findstr /C:"OS 名称" /C:"OS 版本" /C:"系统启动时间" /C:"系统型号" | tee -a %LOG_FILE%
echo. >> %LOG_FILE%
:: 2. CPU 和内存
echo [2] CPU 和内存
echo [2] CPU 和内存 >> %LOG_FILE%
wmic cpu get Name,NumberOfCores,LoadPercentage | tee -a %LOG_FILE%
wmic OS get FreePhysicalMemory,TotalVisibleMemorySize /Value | tee -a %LOG_FILE%
echo. >> %LOG_FILE%
:: 3. 磁盘空间
echo [3] 磁盘空间
echo [3] 磁盘空间 >> %LOG_FILE%
wmic logicaldisk get DeviceID,Size,FreeSpace,FileSystem | tee -a %LOG_FILE%
echo. >> %LOG_FILE%
:: 4. 关键服务
echo [4] 关键服务
echo [4] 关键服务 >> %LOG_FILE%
for %%s in (RpcSs EventLog BITS wuauserv) do (
sc query %%s | findstr "STATE" | tee -a %LOG_FILE%
)
echo. >> %LOG_FILE%
:: 5. 网络连接
echo [5] 网络连接
echo [5] 网络连接 >> %LOG_FILE%
ipconfig | findstr /C:"IPv4" /C:"默认网关" | tee -a %LOG_FILE%
echo. >> %LOG_FILE%
:: 6. 最近错误日志
echo [6] 最近错误日志
echo [6] 最近错误日志 >> %LOG_FILE%
wevtutil qe System /q:"*[System[Level=2]]" /c:5 /f:text | findstr /C:"TimeCreated" /C:"Message" | tee -a %LOG_FILE%
echo. >> %LOG_FILE%
:: 7. 进程列表
echo [7] 高资源进程
echo [7] 高资源进程 >> %LOG_FILE%
tasklist /v | findstr /i "cpu memory" | tee -a %LOG_FILE%
echo. >> %LOG_FILE%
:: 8. 启动项
echo [8] 启动项
echo [8] 启动项 >> %LOG_FILE%
wmic startup get Caption,Command | tee -a %LOG_FILE%
echo. >> %LOG_FILE%
echo ==================================== >> %LOG_FILE%
echo 排查完成 >> %LOG_FILE%
echo 日志文件:%LOG_FILE% >> %LOG_FILE%
echo ==================================== >> %LOG_FILE%
echo.
echo ====================================
echo 排查完成
echo 日志文件:%LOG_FILE%
echo ====================================
pause
9.2 网络诊断脚本
:: ========== 网络诊断脚本 ==========
:: 文件名:network_diagnosis.bat
@echo off
title 网络诊断工具
color 0b
echo ====================================
echo 网络诊断工具
echo ====================================
echo.
:: 1. IP 配置
echo [1] IP 配置
ipconfig /all
echo.
:: 2. 网关测试
echo [2] 网关测试
for /f"tokens=2" %%i in ('ipconfig ^| findstr /C:"默认网关"') do (
set gateway=%%i
ping %%i -n 2
goto :next
)
:next
echo.
:: 3. DNS 测试
echo [3] DNS 测试
nslookup www.baidu.com
echo.
:: 4. 外网测试
echo [4] 外网测试
ping 8.8.8.8 -n 2
echo.
:: 5. 端口监听
echo [5] 监听端口
netstat -ano | findstr "LISTENING"
echo.
:: 6. 连接统计
echo [6] 连接统计
echo 总连接数:
netstat -ano | find /c /v ""
echo ESTABLISHED 连接:
netstat -ano | findstr "ESTABLISHED" | find /c /v ""
echo.
:: 7. 防火墙状态
echo [7] 防火墙状态
netsh advfirewall show allprofiles state
echo.
:: 8. 网络修复建议
echo [8] 网络修复命令
echo ipconfig /release
echo ipconfig /renew
echo ipconfig /flushdns
echo netsh winsock reset
echo netsh int ip reset
echo.
echo ====================================
pause
9.3 性能监控脚本
:: ========== 性能监控脚本 ==========
:: 文件名:performance_monitor.bat
@echo off
title 性能监控工具
color 0c
:loop
cls
echo ====================================
echo 性能实时监控
echo 按 Ctrl+C 退出
echo ====================================
echo.
:: 时间
echo 时间:%date% %time%
echo.
:: CPU 使用率
echo [CPU 使用率]
wmic cpu get loadpercentage | findstr "[0-9]"
echo.
:: 内存使用
echo [内存使用]
for /f"tokens=2" %%a in ('wmic OS get FreePhysicalMemory /Value ^| find "FreePhysicalMemory"') doset freemem=%%a
for /f"tokens=2" %%a in ('wmic OS get TotalVisibleMemorySize /Value ^| find "TotalVisibleMemorySize"') doset totalmem=%%a
set /a usedmem=%totalmem%-%freemem%
set /a percent=%usedmem%*100/%totalmem%
echo 总内存:%totalmem% KB
echo 已用内存:%usedmem% KB (%percent%%)
echo.
:: 磁盘空间
echo [磁盘空间 C:]
wmic logicaldisk where "DeviceID='C:'"get Size,FreeSpace | findstr "[0-9]"
echo.
:: 进程数
echo [进程数]
tasklist | find /c /v ""
echo.
:: 网络连接数
echo [网络连接数]
netstat -ano | find /c /v ""
echo.
timeout /t 5 /nobreak >nul
goto :loop
十、故障排查流程图
10.1 综合故障排查流程
┌─────────────────────────────────────────────────────────────────┐
│ 系统故障报告 │
└─────────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 1. 信息收集 │
│ - 系统信息 (systeminfo) │
│ - 事件日志 (eventvwr) │
│ - 用户反馈 │
└─────────────────────────┬───────────────────────────────────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 启动问题 │ │ 性能问题 │ │ 网络问题 │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
▼ ▼ ▼
bcdedit tasklist ipconfig
sfc /scannow perfmon ping/tracert
chkdsk resmon netstat
│ │ │
└──────────────┼──────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 2. 问题分析 │
│ - 定位根本原因 │
│ - 确定影响范围 │
│ - 制定解决方案 │
└─────────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 3. 实施修复 │
│ - 执行修复命令 │
│ - 验证修复效果 │
│ - 记录修复过程 │
└─────────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ 4. 预防措施 │
│ - 建立监控 │
│ - 定期维护 │
│ - 文档记录 │
└─────────────────────────────────────────────────────────────────┘
10.2 故障排查检查清单
□ 系统信息收集
□ 操作系统版本
□ 硬件配置
□ 已安装软件
□ 最近变更
□ 日志分析
□ 系统日志
□ 应用程序日志
□ 安全日志
□ 事件 ID 分析
□ 资源检查
□ CPU 使用率
□ 内存使用率
□ 磁盘空间
□ 网络连接
□ 服务状态
□ 关键服务运行状态
□ 服务启动类型
□ 服务依赖关系
□ 网络连通性
□ 本地连接
□ 网关连接
□ DNS 解析
□ 外网连接
□ 权限验证
□ 用户权限
□ 文件权限
□ 服务权限
□ 修复验证
□ 问题是否解决
□ 系统是否稳定
□ 性能是否恢复
十一、常用故障排查命令速查表
| | | | | | — | — | — | — | | 故障类型 | 首要命令 | 辅助命令 | 修复命令 | | 系统启动 | bcdedit | msconfig | sfc /scannow | | 蓝屏 | !analyze -v | wmic recoveros | chkdsk /f /r | | 系统慢 | tasklist | resmon | DISM /RestoreHealth | | CPU 高 | tasklist /v | typeperf | taskkill | | 内存高 | wmic OS | resmon | 重启服务 | | 磁盘满 | wmic logicaldisk | powershell 查找 | cleanmgr | | 网络不通 | ping | tracert | netsh reset | | DNS 问题 | nslookup | ipconfig | ipconfig /flushdns | | 服务失败 | sc query | eventvwr | sc start | | 权限错误 | whoami | icacls | takeown | | 文件损坏 | sfc | DISM | DISM /RestoreHealth | | 驱动问题 | driverquery | verifier | pnputil |
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:运维星火燎原 刘军军 刘军军《Windows 系统故障排查命令详解》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论