Windows 系统故障排查命令详解

chengsenw 项目开发评论2阅读模式

Windows 系统故障排查命令详解

Windows 系统故障排查命令详解
目录
  1. 系统状态快速检查
  2. 启动问题排查
  3. 性能问题排查
  4. 网络问题排查
  5. 磁盘问题排查
  6. 服务问题排查
  7. 用户权限问题排查
  8. 系统日志分析
  9. 自动化排查脚本
  10. 故障排查流程图

一、系统状态快速检查
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: 416008 (意外关机)
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 showprofiles
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 服务名 startauto      :: 自动
sc config 服务名 startdemand    :: 手动
sc config 服务名 start= disabled  :: 禁用

:: 修改服务账户
sc config 服务名 obj= "NT Authority\LocalService"

:: 恢复服务默认配置
sc failure 服务名 reset86400 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)                                       │
│     - 用户反馈                                                   │
└─────────────────────────┬───────────────────────────────────────┘
                          │
          ┌───────────────┼───────────────┐
          │               │               │
          ▼               ▼               ▼
    ┌──────────┐   ┌──────────┐   ┌──────────┐
    │ 启动问题  │   │ 性能问题  │   │ 网络问题  │
    └────┬─────┘   └────┬─────┘   └────┬─────┘
         │              │              │
         ▼              ▼              ▼
bcdedittasklistipconfig
sfc /scannowperfmonping/tracert
chkdskresmonnetstat
         │              │              │
         └──────────────┼──────────────┘
                        │
                        ▼
┌─────────────────────────────────────────────────────────────────┐
│  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

 
chengsenw
  • 本文由 chengsenw 发表于 2026年3月5日 00:27:36
  • 转载请务必保留本文链接:https://www.gewo168.com/11538.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: