关于 system-diagnostics
Windows System Diagnostics 是面向 Windows 11 的 PowerShell 诊断技能,用于排查系统崩溃、磁盘、内存、硬件和性能问题。它只收集只读诊断信息,修复操作仅作为建议提供。
主要功能
- 01分析 Windows 事件日志
- 02检查磁盘健康和可靠性数据
- 03检查内存使用及相关问题
- 04检测硬件错误和驱动问题
- 05分析性能与系统稳定性
适用场景
- 01调查意外重启、冻结或蓝屏
- 02排查磁盘错误和健康状况
- 03识别内存占用或性能瓶颈
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ melodic-software/ claude-code-plugins --skill system-diagnostics安装后在 Claude Code 中输入/system-diagnostics确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/admin-elevation.mdcrash-analysis.mddisk-health.mdevent-logs.mdhardware-errors.mdmemory-diagnostics.mdperformance-analysis.mdsystem-stability.md详细介绍
Windows 系统诊断
使用 PowerShell 对 Windows 11 系统进行全面诊断。此技能可帮助诊断崩溃、卡死、意外重启、磁盘问题、内存问题、硬件错误和性能瓶颈。
目录
- 快速入门 - 立即运行诊断命令
- 平台要求 - Windows 11、PowerShell 7+
- 诊断类别 - 此技能涵盖的内容
- 快速健康检查 - 快速了解系统状况
- 参考资料加载 - 渐进式披露
- 安全模型 - 只读操作与建议的修复
- 常见问题 - 故障排查模式
概述
此技能提供只读诊断功能,用于收集系统健康信息。它不会执行修复命令,只会建议用户手动运行这些命令。
功能:
- 事件日志分析(崩溃、错误、警告)
- 磁盘健康监控(SMART 数据、文件系统错误)
- 内存诊断(使用情况、泄漏、硬件问题)
- 硬件错误检测(设备故障、驱动程序、WHEA)
- 性能分析(CPU、内存、磁盘瓶颈)
- 系统稳定性指标(运行时间、重启原因)
何时使用此技能
在以下情况下使用此技能:
- 计算机崩溃、卡死或意外重启
- 出现蓝屏死机(BSOD)错误
- 担心磁盘健康状况(性能变慢、出现错误)
- 怀疑存在内存问题(使用率高、负载下崩溃)
- 出现硬件错误或驱动程序问题
- 需要分析 Windows 事件查看器日志
- 系统性能下降
- 调查应用程序崩溃
平台要求
必需:
- Windows 11(此技能针对 Windows 11 Pro 优化)
- PowerShell 7+(
pwsh),以获得最佳兼容性
验证 PowerShell 版本:
$PSVersionTable.PSVersion
**注意:**大多数命令也适用于 Windows PowerShell 5.1,但建议使用 PowerShell 7+,以确保行为一致。
快速入门
立即检查系统健康状况
运行以下命令,快速了解系统健康状况:
# System info and uptime
Get-Uptime
Get-ComputerInfo | Select-Object OsName, OsVersion, OsBuildNumber, CsProcessors, CsTotalPhysicalMemory
# Recent critical/error events (last 7 days)
Get-WinEvent -FilterHashtable @{LogName='System';Level=1,2;StartTime=(Get-Date).AddDays(-7)} -MaxEvents 20 |
Select-Object TimeCreated, Id, ProviderName, Message | Format-Table -Wrap
# Disk health
Get-PhysicalDisk | Select-Object FriendlyName, MediaType, Size, HealthStatus, OperationalStatus
# Top memory consumers
Get-Process | Sort-Object WorkingSet64 -Descending |
Select-Object -First 10 ProcessName, Id, @{N='MB';E={[math]::Round($_.WorkingSet64/1MB,0)}}
# Device errors
Get-PnpDevice -PresentOnly | Where-Object { $_.Status -in 'Error','Degraded','Unknown' } |
Select-Object Class, FriendlyName, Status
诊断类别
| 类别 | 描述 | 参考资料 |
|---|---|---|
| 事件日志 | Windows 事件查看器分析 | event-logs.md |
| 磁盘健康状况 | SMART 数据、文件系统、存储 | disk-health.md |
| 内存 | RAM 使用情况、泄漏、硬件 | memory-diagnostics.md |
| 稳定性 | 运行时间、重启、BSOD | system-stability.md |
| 硬件 | 设备错误、WHEA、驱动程序 | hardware-errors.md |
| 性能 | CPU、内存、磁盘瓶颈 | performance-analysis.md |
| 崩溃 | 小型转储、WER、BSOD 分析 | crash-analysis.md |
| 提权 | 管理员权限要求、优雅降级 | admin-elevation.md |
快速健康检查
系统信息
# Basic system info
Get-ComputerInfo | Select-Object `
OsName, OsVersion, OsBuildNumber, `
CsName, CsDomain, `
CsProcessors, CsNumberOfLogicalProcessors, `
@{N='RAM_GB';E={[math]::Round($_.CsTotalPhysicalMemory/1GB,1)}}
# System uptime
Get-Uptime
Get-Uptime -Since # Last boot time
最近的系统错误
# Critical and Error events from System log (last 7 days)
Get-WinEvent -FilterHashtable @{
LogName = 'System'
Level = 1,2 # 1=Critical, 2=Error
StartTime = (Get-Date).AddDays(-7)
} -MaxEvents 50 | Select-Object TimeCreated, Id, ProviderName, LevelDisplayName, Message
磁盘快速检查
# Physical disk health
Get-PhysicalDisk | Select-Object FriendlyName, MediaType, Size, HealthStatus, OperationalStatus
# SMART-like reliability data
Get-PhysicalDisk | ForEach-Object {
$disk = $_
$counters = $_ | Get-StorageReliabilityCounter
[PSCustomObject]@{
Disk = $disk.FriendlyName
Health = $disk.HealthStatus
Temperature = $counters.Temperature
ReadErrors = $counters.ReadErrorsTotal
WriteErrors = $counters.WriteErrorsTotal
PowerOnHours = $counters.PowerOnHours
}
}
内存快速检查
# System memory overview
Get-CimInstance Win32_OperatingSystem | Select-Object `
@{N='Total_GB';E={[math]::Round($_.TotalVisibleMemorySize/1MB,2)}},
@{N='Free_GB';E={[math]::Round($_.FreePhysicalMemory/1MB,2)}},
@{N='Used_Pct';E={[math]::Round((1 - $_.FreePhysicalMemory/$_.TotalVisibleMemorySize)*100,1)}}
# Top 10 memory-consuming processes
Get-Process | Sort-Object WorkingSet64 -Descending |
Select-Object -First 10 ProcessName, Id,
@{N='WS_MB';E={[math]::Round($_.WorkingSet64/1MB,0)}},
@{N='PM_MB';E={[math]::Round($_.PrivateMemorySize64/1MB,0)}}
硬件快速检查
# Devices with errors
Get-PnpDevice -PresentOnly | Where-Object { $_.Status -in 'Error','Degraded','Unknown' } |
Select-Object Class, FriendlyName, InstanceId, Status
# WHEA hardware errors (last 30 days)
Get-WinEvent -FilterHashtable @{
LogName = 'System'
ProviderName = 'Microsoft-Windows-WHEA-Logger'
StartTime = (Get-Date).AddDays(-30)
} -MaxEvents 20 -ErrorAction SilentlyContinue | Select-Object TimeCreated, Id, Message
参考资料加载指南
根据正在调查的诊断类别,按需加载参考资料。这种渐进式披露方式有助于高效使用令牌。
始终加载(核心)
主 SKILL.md 提供用于初步筛查的快捷命令(约 4k 个令牌)。
条件加载
根据你正在调查的内容加载特定参考资料:
| 触发条件 | 要加载的参考资料 |
|---|---|
| 事件日志、错误、警告 | event-logs.md |
| 磁盘、存储、SMART、chkdsk | disk-health.md |
| 内存、RAM、分页、泄漏 | memory-diagnostics.md |
| 运行时间、重启、可靠性 | system-stability.md |
| 硬件、驱动程序、WHEA、设备 | hardware-errors.md |
| CPU、性能、瓶颈 | performance-analysis.md |
| BSOD、minidump、崩溃、WER | crash-analysis.md |
| 管理员、权限提升、权限 | admin-elevation.md |
Token 估算
- 快速健康检查:约 4k tokens(仅 SKILL.md)
- 单类别深入分析:约 7k tokens(SKILL.md + 1 个参考资料)
- 完整诊断:约 25k tokens(SKILL.md + 所有参考资料)
安全模型
此技能遵循只读诊断模型。此技能执行的所有命令都只收集信息,不会修改系统。
只读(技能可以执行)
以下命令可以安全运行:
| 类别 | 命令 |
|---|---|
| 事件日志 | Get-WinEvent |
| 磁盘健康状况 | Get-PhysicalDisk、Get-StorageReliabilityCounter、Get-Volume |
| 内存 | Get-Process、Get-CimInstance Win32_OperatingSystem |
| 设备 | Get-PnpDevice |
| 性能 | Get-Counter |
| 系统信息 | Get-Uptime、Get-ComputerInfo |
仅提供建议(由用户手动运行)
以下修复/诊断命令会修改系统或需要重启。此技能会提供说明,但不会执行这些命令:
| 命令 | 用途 | 备注 |
|---|---|---|
chkdsk /f /r | 磁盘修复 | 系统驱动器需要重启 |
sfc /scannow | 系统文件修复 | 需要管理员权限 |
DISM /Online /Cleanup-Image /RestoreHealth | 系统映像修复 | 需要管理员权限和互联网连接 |
mdsched.exe | 内存诊断 | 需要重启 |
Repair-Volume -SpotFix | 快速磁盘修复 | 需要管理员权限 |
| 驱动程序重新安装 | 修复驱动程序问题 | 手动操作 |
权限提升说明
某些只读操作需要管理员权限:
Get-WinEvent -LogName Security(安全日志)Repair-Volume -Scan(即使是只读扫描)- 某些 WMI 查询
技能会在需要提升权限时说明,并为非管理员场景提供适当的替代方案。
常见诊断场景
场景:计算机持续崩溃/重启
- 检查运行时间和近期重启事件
- 查找 Kernel-Power Event ID 41(意外关机)
- 检查 BSOD minidump
- 检查硬件错误(WHEA)
- 检查磁盘和内存健康状况
关键命令:
# Recent restart events
Get-WinEvent -FilterHashtable @{LogName='System';Id=41,1074,6008} -MaxEvents 20
# BSOD events
Get-WinEvent -FilterHashtable @{LogName='System';ProviderName='Microsoft-Windows-WER-SystemErrorReporting'} -MaxEvents 10
# Check for minidumps
Get-ChildItem C:\Windows\Minidump -ErrorAction SilentlyContinue
场景:性能缓慢
- 检查 CPU/内存/磁盘使用率
- 找出占用大量资源的进程
- 检查磁盘健康问题
- 查找硬件降频情况
关键命令:
# Current resource usage
Get-Counter -Counter '\Processor(_Total)\% Processor Time','\Memory\% Committed Bytes In Use','\PhysicalDisk(_Total)\% Disk Time'
# Top CPU consumers
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 ProcessName, CPU, @{N='MB';E={[math]::Round($_.WorkingSet64/1MB)}}
场景:怀疑磁盘错误
- 检查物理磁盘健康状态
- 查看 SMART 可靠性计数器
- 查找与磁盘相关的事件
- 检查文件系统脏位
关键命令:
# Disk health
Get-PhysicalDisk | Select-Object FriendlyName, HealthStatus, OperationalStatus
# Reliability counters
Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object DeviceId, Temperature, ReadErrorsTotal, WriteErrorsTotal
# Recent disk events
Get-WinEvent -FilterHashtable @{LogName='System';ProviderName='disk','ntfs'} -MaxEvents 20
场景:内存问题
- 检查当前内存使用情况
- 找出占用大量内存的进程
- 查找与内存相关的事件
- 检查之前的内存诊断结果
关键命令:
# Memory usage
Get-CimInstance Win32_OperatingSystem | Select-Object @{N='Used%';E={[math]::Round((1-$_.FreePhysicalMemory/$_.TotalVisibleMemorySize)*100,1)}}
# Top memory processes
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10 ProcessName, @{N='MB';E={[math]::Round($_.WorkingSet64/1MB)}}
# Memory diagnostic results
Get-WinEvent -FilterHashtable @{LogName='System';ProviderName='Microsoft-Windows-MemoryDiagnostics-Results'} -ErrorAction SilentlyContinue
反模式
请勿:
- 执行修复命令(chkdsk /f、sfc /scannow 等)——仅提出建议
- 未经用户明确同意就运行需要重启的命令(mdsched.exe)
- 假定可以使用管理员权限
- 忽略权限提升错误——报告错误并建议以管理员身份运行
- 在没有诊断证据的情况下提出硬件建议
请:
- 先进行快速健康检查,再深入排查
- 根据调查需要逐步加载参考资料
- 按严重程度报告发现(严重、警告、信息)
- 为用户提供可执行的后续步骤
- 解释每条建议的修复命令的作用
版本历史
- v1.0.0 (2025-12-03):首次发布,包含 Windows 11 诊断功能
最后更新
日期: 2025-12-03 模型: claude-opus-4-5-20251101
评论
支持 Markdown