mcpField
S
system-diagnostics

system-diagnostics

github.com/melodic-software其他28163 次安装今天更新
代码仓库

关于 system-diagnostics

Windows System Diagnostics 是面向 Windows 11 的 PowerShell 诊断技能,用于排查系统崩溃、磁盘、内存、硬件和性能问题。它只收集只读诊断信息,修复操作仅作为建议提供。

主要功能

  1. 01分析 Windows 事件日志
  2. 02检查磁盘健康和可靠性数据
  3. 03检查内存使用及相关问题
  4. 04检测硬件错误和驱动问题
  5. 05分析性能与系统稳定性

适用场景

  1. 01调查意外重启、冻结或蓝屏
  2. 02排查磁盘错误和健康状况
  3. 03识别内存占用或性能瓶颈

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/melodic-software/claude-code-plugins --skill system-diagnostics

安装后在 Claude Code 中输入/system-diagnostics确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
admin-elevation.md
crash-analysis.md
disk-health.md
event-logs.md
hardware-errors.md
memory-diagnostics.md
performance-analysis.md
system-stability.md

详细介绍

Windows 系统诊断

使用 PowerShell 对 Windows 11 系统进行全面诊断。此技能可帮助诊断崩溃、卡死、意外重启、磁盘问题、内存问题、硬件错误和性能瓶颈。

目录

概述

此技能提供只读诊断功能,用于收集系统健康信息。它不会执行修复命令,只会建议用户手动运行这些命令。

功能:

  • 事件日志分析(崩溃、错误、警告)
  • 磁盘健康监控(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
稳定性运行时间、重启、BSODsystem-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、chkdskdisk-health.md
内存、RAM、分页、泄漏memory-diagnostics.md
运行时间、重启、可靠性system-stability.md
硬件、驱动程序、WHEA、设备hardware-errors.md
CPU、性能、瓶颈performance-analysis.md
BSOD、minidump、崩溃、WERcrash-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 查询

技能会在需要提升权限时说明,并为非管理员场景提供适当的替代方案。

常见诊断场景

场景:计算机持续崩溃/重启
  1. 检查运行时间和近期重启事件
  2. 查找 Kernel-Power Event ID 41(意外关机)
  3. 检查 BSOD minidump
  4. 检查硬件错误(WHEA)
  5. 检查磁盘和内存健康状况

关键命令:

# 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
场景:性能缓慢
  1. 检查 CPU/内存/磁盘使用率
  2. 找出占用大量资源的进程
  3. 检查磁盘健康问题
  4. 查找硬件降频情况

关键命令:

# 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)}}
场景:怀疑磁盘错误
  1. 检查物理磁盘健康状态
  2. 查看 SMART 可靠性计数器
  3. 查找与磁盘相关的事件
  4. 检查文件系统脏位

关键命令:

# 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
场景:内存问题
  1. 检查当前内存使用情况
  2. 找出占用大量内存的进程
  3. 查找与内存相关的事件
  4. 检查之前的内存诊断结果

关键命令:

# 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