Windows でシステムの破損をチェックできるコマンド

シャットダウンが正しく行われていないとシステムファイルが破損して最悪の場合は、OS が起動しなくなる可能性がありますが、電源ボタン長押し、停電、または、電源コードを誤って抜いてしまい PC の電源を強制的に OFF にした経験はだれでもあると思います。

電源強制 OFF 後に実行しておくとよいファイルシステムやシステムファイルが破損していないかチェックできるコマンドを紹介します。紹介するコマンドは管理者権限で実行してくださいね。

## 破損チェック コマンド
### 1. ファイルシステム
```bat
chkdsk C:
```
[chkdsk](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chkdsk) コマンドは、Windows のディスク検査ユーティリティで、ファイルシステムとファイルシステムメタデータの論理的および物理的なエラーをチェックします。

```text:実行結果例
> chkdsk c:
ファイル システムの種類は NTFS です。

警告: /F パラメーターが指定されていません
CHKDSK を読み取り専用モードで実行します。

ステージ 1: 基本のファイル システム構造を検査しています ...
  119040 個のファイル レコードが処理されました。
ファイルの検査を完了しました。
 フェーズの継続時間 (ファイル レコードの検査): 1.65 秒。
  3282 個の大きなファイル レコードが処理されました。
 フェーズの継続時間 (孤立ファイル レコードの回復): 3.38 ミリ秒。
  0 個の問題のあるファイル レコードが処理されました。
 フェーズの継続時間 (不良ファイル レコードの検査): 0.34 ミリ秒。

ステージ 2: ファイル名リンケージを検査しています ...
  236 個の再解析レコードが処理されました。
  180530 個のインデックス エントリが処理されました。
インデックスの検査を完了しました。
 フェーズの継続時間 (インデックスの検査): 4.76 秒。
  0 個のインデックスなしファイルがスキャンされました。
 フェーズの継続時間 (孤立した再接続): 58.08 ミリ秒。
  0 個のインデックスのないファイルが lost and found に回復されました。
 フェーズの継続時間 (孤立を lost and found に回復): 0.42 ミリ秒。
  236 個の再解析レコードが処理されました。
 フェーズの継続時間 (再解析ポイントとオブジェクト ID の検査): 1.79 ミリ秒。

ステージ 3: セキュリティ記述子を検査しています ...
セキュリティ記述子の検査を完了しました。
 フェーズの継続時間 (セキュリティ記述子の検査): 18.15 ミリ秒。
  30746 個のデータ ファイルが処理されました。
 フェーズの継続時間 (データ属性の検査): 0.45 ミリ秒。
CHKDSK は Usn ジャーナルを確認しています...
  18737976 バイトの USN が処理されました。
Usn ジャーナルの確認を完了しました。
 フェーズの継続時間 (USN ジャーナルの検査): 53.30 ミリ秒。

Windows でファイル システムのスキャンが終了しました。
問題は見つかりませんでした。
これ以上の操作は必要ありません。

 132227071 KB : 全ディスク領域
  17712556 KB : 84933 個のファイル
     71852 KB : 30747 個のインデックス
         0 KB : 不良セクター
    209719 KB : システムで使用中
     65536 KB : ログ ファイルが使用
 114232944 KB : 使用可能領域

      4096 バイト : アロケーション ユニット サイズ
  33056767 個     : 全アロケーション ユニット
  28558236 個     : 利用可能アロケーション ユニット
合計継続時間: 6.55 秒 (6553 ミリ秒)。
```

>Windows でファイル システムのスキャンが終了しました。
問題は見つかりませんでした。
これ以上の操作は必要ありません。

このメッセージが表示されていれば、ファイルシステムに問題はないと判断していいです。

### 2. システムファイル
```bat
Dism /Online /Cleanup-Image /ScanHealth
sfc /verifyonly
```
[Dism](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/what-is-dism)、[sfc](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/sfc) は、Windowsのシステムファイルの整合性をチェックし、問題があるかどうかを確認するために使用できます。

#### 1. Dism /Online /Cleanup-Image /ScanHealth
このコマンドは、Windows の [コンポーネントストア](https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/manage-the-component-store) の整合性をチェックします。具体的には、システムイメージに破損がないかを確認します。このコマンドは、システムイメージの問題を検出し、修復は行いません。

```text:実行結果例
> Dism /Online /Cleanup-Image /ScanHealth

展開イメージのサービスと管理ツール
バージョン: 10.0.22621.2792

イメージのバージョン: 10.0.22621.4246

[==========================100.0%==========================] コンポーネント ストアが壊れていることは検出されませんでした。
操作は正常に完了しました。
```
>コンポーネント ストアが壊れていることは検出されませんでした。

このメッセージが表示されていれば、システムイメージに問題はないと判断できます。

#### 2. sfc /verifyonly
このコマンドは、Windows のシステムファイルの整合性をチェックします。ただし、修復は行わず、問題があるかどうかを報告するだけです。

```text:実行結果例
> sfc /verifyonly

システム スキャンを開始しています。これにはしばらく時間がかかります。

システム スキャンの検証フェーズを開始しています。
検証 100% が完了しました。

Windows リソース保護は、整合性違反を検出しませんでした。
```

>Windows リソース保護は、整合性違反を検出しませんでした。

このメッセージが表示されていれば、システムファイルの整合性に問題はないと判断できます。

## さいごに
注意として、これらコマンドで検出できない破損もあるため、絶対安心というわけではありませんが、経験則的にはこれで大丈夫かなと思っています。

破損を検出したらどうすればいいのかは、破損している環境を準備して、また別に投稿しようと思います。