mcpField
S
system-diagnostics

system-diagnostics

github.com/melodic-softwareその他28163 回インストール今日更新
リポジトリ

system-diagnostics について

Windows System Diagnostics は、Windows 11 の問題を調べる PowerShell スキルです。イベントログやディスク、メモリ、ハードウェア、性能を読み取り専用で診断し、修復操作はユーザー向けの提案にとどめます。

主な機能

  1. 01Windows イベントログの分析
  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、ミニダンプ、クラッシュ、WERcrash-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 のミニダンプを確認する
  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)を実行しないでください
  • 管理者権限を利用できると決めつけないでください
  • 権限昇格エラーを無視しないでください。エラーを報告し、管理者として実行するよう提案してください
  • 診断結果の根拠なく、ハードウェアを推奨しないでください

次のことをしてください:

  • 詳細な調査に入る前に、簡単なヘルスチェックから始めてください
  • 調査の必要に応じて、参照情報を段階的に読み込んでください
  • 重要度(Critical、Warning、Info)を付けて調査結果を報告してください
  • ユーザーが実行できる具体的な次の手順を提示してください
  • 提案する修復コマンドがそれぞれ何をするのか説明してください

バージョン履歴

  • v1.0.0(2025-12-03):Windows 11 の診断機能を初回リリース

最終更新日

日付: 2025-12-03 モデル: claude-opus-4-5-20251101

コメント