Windows系统诊断技能Skill system-diagnostics

这个技能提供通过PowerShell对Windows 11系统进行全面的只读诊断,帮助识别和解决崩溃、冻结、磁盘问题、内存错误等系统稳定性问题。关键词:Windows 11, PowerShell, 系统诊断, 崩溃分析, 磁盘健康, 内存检测, 硬件错误, 性能优化, 事件日志, 故障排除。

操作系统 0 次安装 0 次浏览 更新于 3/11/2026

名称: 系统诊断 描述: 通过PowerShell进行全面的Windows 11系统诊断。诊断崩溃、冻结、重启、蓝屏死机(BSOD)、磁盘健康、内存问题、硬件错误和性能问题。在故障排除Windows稳定性问题、分析事件查看器日志、检查磁盘/内存健康、调查硬件错误或诊断系统性能问题时使用。 允许的工具: Bash, Read, Glob, Grep

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+以获得一致行为。

快速开始

即时系统健康检查

运行这些命令以获取系统健康快速概览:

# 系统信息和运行时间
Get-Uptime
Get-ComputerInfo | Select-Object OsName, OsVersion, OsBuildNumber, CsProcessors, CsTotalPhysicalMemory

# 最近关键/错误事件(过去7天)
Get-WinEvent -FilterHashtable @{LogName='System';Level=1,2;StartTime=(Get-Date).AddDays(-7)} -MaxEvents 20 |
    Select-Object TimeCreated, Id, ProviderName, Message | Format-Table -Wrap

# 磁盘健康
Get-PhysicalDisk | Select-Object FriendlyName, MediaType, Size, HealthStatus, OperationalStatus

# 顶部内存消耗者
Get-Process | Sort-Object WorkingSet64 -Descending |
    Select-Object -First 10 ProcessName, Id, @{N='MB';E={[math]::Round($_.WorkingSet64/1MB,0)}}

# 设备错误
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
崩溃 Minidumps、WER、BSOD分析 crash-analysis.md
提升 管理员要求、优雅降级 admin-elevation.md

快速健康检查

系统信息

# 基本系统信息
Get-ComputerInfo | Select-Object `
    OsName, OsVersion, OsBuildNumber, `
    CsName, CsDomain, `
    CsProcessors, CsNumberOfLogicalProcessors, `
    @{N='RAM_GB';E={[math]::Round($_.CsTotalPhysicalMemory/1GB,1)}}

# 系统运行时间
Get-Uptime
Get-Uptime -Since  # 上次启动时间

最近系统错误

# 系统日志中的关键和错误事件(过去7天)
Get-WinEvent -FilterHashtable @{
    LogName = 'System'
    Level = 1,2  # 1=关键, 2=错误
    StartTime = (Get-Date).AddDays(-7)
} -MaxEvents 50 | Select-Object TimeCreated, Id, ProviderName, LevelDisplayName, Message

磁盘快速检查

# 物理磁盘健康
Get-PhysicalDisk | Select-Object FriendlyName, MediaType, Size, HealthStatus, OperationalStatus

# 类似SMART的可靠性数据
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
    }
}

内存快速检查

# 系统内存概览
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)}}

# 前10个内存消耗进程
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)}}

硬件快速检查

# 有错误的设备
Get-PnpDevice -PresentOnly | Where-Object { $_.Status -in 'Error','Degraded','Unknown' } |
    Select-Object Class, FriendlyName, InstanceId, Status

# WHEA硬件错误(过去30天)
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

令牌估计

  • 快速健康检查:约4k令牌(仅SKILL.md
  • 单个类别深入:约7k令牌(SKILL.md + 1参考)
  • 完整诊断:约25k令牌(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事件ID 41(意外关机)
  3. 检查BSOD minidumps
  4. 审查硬件错误(WHEA)
  5. 检查磁盘和内存健康

关键命令:

# 最近重启事件
Get-WinEvent -FilterHashtable @{LogName='System';Id=41,1074,6008} -MaxEvents 20

# BSOD事件
Get-WinEvent -FilterHashtable @{LogName='System';ProviderName='Microsoft-Windows-WER-SystemErrorReporting'} -MaxEvents 10

# 检查minidumps
Get-ChildItem C:\Windows\Minidump -ErrorAction SilentlyContinue

场景:性能慢

  1. 检查CPU/内存/磁盘利用率
  2. 识别资源密集型进程
  3. 检查磁盘健康问题
  4. 查找硬件节流

关键命令:

# 当前资源使用情况
Get-Counter -Counter '\Processor(_Total)\% Processor Time','\Memory\% Committed Bytes In Use','\PhysicalDisk(_Total)\% Disk Time'

# 顶部CPU消耗者
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 ProcessName, CPU, @{N='MB';E={[math]::Round($_.WorkingSet64/1MB)}}

场景:怀疑磁盘错误

  1. 检查物理磁盘健康状态
  2. 审查SMART可靠性计数器
  3. 查找磁盘相关事件
  4. 检查文件系统脏位

关键命令:

# 磁盘健康
Get-PhysicalDisk | Select-Object FriendlyName, HealthStatus, OperationalStatus

# 可靠性计数器
Get-PhysicalDisk | Get-StorageReliabilityCounter | Select-Object DeviceId, Temperature, ReadErrorsTotal, WriteErrorsTotal

# 最近磁盘事件
Get-WinEvent -FilterHashtable @{LogName='System';ProviderName='disk','ntfs'} -MaxEvents 20

场景:内存问题

  1. 检查当前内存使用情况
  2. 识别内存密集型进程
  3. 查找内存相关事件
  4. 检查之前内存诊断结果

关键命令:

# 内存使用情况
Get-CimInstance Win32_OperatingSystem | Select-Object @{N='Used%';E={[math]::Round((1-$_.FreePhysicalMemory/$_.TotalVisibleMemorySize)*100,1)}}

# 顶部内存进程
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 10 ProcessName, @{N='MB';E={[math]::Round($_.WorkingSet64/1MB)}}

# 内存诊断结果
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