Microsoft Defender Offline Scan は、OS の起動前にマルウェアを検査できる強力な機能です。しかし Windows 11 Pro (24H2) で実行すると、スキャン後はログイン画面に戻るだけで結果ウィンドウが出ないため「本当に動いたのか」「検出が無かっただけなのか」が分かりにくいという声が多く寄せられます。本記事では、オフラインスキャンが正しく完了したかを100 % 確認できる 4 つの方法と、運用を自動化するテクニックまで徹底解説します。
オフラインスキャンとは?
通常のクイック / フル / カスタムスキャンは OS 起動後にユーザー空間で実行されます。これに対しオフラインスキャンは Windows Preinstallation Environment (WinPE) 相当の最小環境で動作し、システムファイルに潜むルートキットやブートキットを除去できます。OS が稼働していないためマルウェアが防御機構を張る隙がなく、最後の砦として推奨されます。
Windows 11 で実行すると何が起こるか
- 「ウイルスと脅威の防止」→「スキャンのオプション」→「Microsoft Defender オフライン スキャン」を選択
- 再起動後、青い画面で自動的にスキャン (5〜15 分程度)
- 処理が終わると自動再起動し、ログイン画面が表示される
ここで多くのユーザーは「結果ウィンドウが表示されない」「保護の履歴も空」といった状況に直面します。これは設計上“検出がなければ何も残さない”仕様のためで、異常ではありません。とはいえ業務 PC や顧客先の端末では、本当にスキャンが完了したか、脅威が無かったかを証跡として残す必要があります。
結果が表示されない 3 つの理由
- UI 省略ポリシー: オフラインスキャンは自動バッチ処理に近い設計で、ユーザーが操作できる要素が無い。
- 検出なし時はサイレント終了: 脅威が無ければ履歴を生成しないことで、ログ肥大と誤解を防ぐ。
- クラウド同期が行われない: オフライン環境で実行されるためクラウド保護のタイムスタンプが更新されず、「最終スキャン: 利用不可」と表示されがち。
確実に確認できる 4 つのポイント
| 確認ポイント | 方法 | 判定基準 |
|---|---|---|
| 1. オフラインスキャン専用ログ | C:\Windows\Microsoft Antimalware\Support\msssWrapper.log を開く | 行末が Offline scan completed with 0x00000000 なら「正常終了・検出なし」 検出があれば直前に Threat 行を出力 |
| 2. 保護の履歴 | Windows セキュリティ →「ウイルスと脅威の防止」→「保護の履歴」 | 検出があった場合のみエントリ生成。無ければ空欄。 |
| 3. PowerShell で照会 | 管理者 PowerShellGet‑MpThreatDetection | 脅威があれば JSON 形式で表示。空なら検出なし。 |
| 4. イベント ビューアー | イベントビューアー → 「Microsoft‑Windows‑Windows Defender/Operational」 | ID 1000 (開始) と 1001 (終了) が対で存在すればスキャン実行済み。 |
確認手順を徹底解説
1. msssWrapper.log を読む
このログはオフラインスキャン実行直後にのみ生成・更新される専用ファイルで、最も信頼できる一次証跡です。
- 管理者権限で メモ帳 や Visual Studio Code を起動。
C:\Windows\Microsoft Antimalware\Support\msssWrapper.logを開く。- 末尾付近を確認。正常例:
2025-06-20 13:22:05.123 Offline scan completed with 0x00000000
2025-06-20 13:22:05.124 Exiting with code 0x0
「0x00000000」は EXIT_SUCCESS を示し、脅威検出もゼロであることを意味します。
不正ファイルを検出した場合は、次のように Threat 行が追加されます。
Threat: Trojan:Win32/Wacatac.B!ml
Action: Remediated
...
代表的な終了コード一覧
| コード | 意味 | 対応策 |
|---|---|---|
| 0x00000000 | 正常終了・検出なし | 追加対応不要 |
| 0x80070020 | 別プロセスによるアクセス拒否 | 他社 AV を停止して再実行 |
| 0x80508023 | 脅威検出済み (削除成功) | 保護の履歴で内容確認 |
2. 保護の履歴を確認する
オフラインスキャンが脅威を隔離すると、オンライン環境復帰後に 保護の履歴 にシリアライズされます。
- Windows セキュリティを開く。
- 「ウイルスと脅威の防止」をクリック。
- 画面右の「保護の履歴」を選択し、「フィルター > 検出された脅威」を選ぶ。
エントリが空白であれば検出なしです。
「脅威サービスが時間内に応答しませんでした」等の警告がある場合は OS 更新やパターンファイル破損を疑いましょう。
3. PowerShell で過去検出を照会
Defender の診断データは WMI 経由でも取得できます。スクリプト運用する場合は PowerShell が便利です。
# 検出脅威を過去30日分取得
Get-MpThreatDetection |
Where-Object {$_.InitialDetectionTime -gt (Get-Date).AddDays(-30)} |
Select-Object InitialDetectionTime,ThreatName,ActionSuccess | Format-Table
空行のみ返れば検出は無かったと判断できます。
4. イベント ビューアーでスキャン履歴を追跡
Event ID 1000 (Scan started) と 1001 (Scan completed) を照合すると、タスクスケジューラと同等の精度で実行状況を残せます。
- 「イベント ビューアー」を管理者権限で起動。
- 「アプリケーションとサービス ログ」→「Microsoft」→「Windows」→「Windows Defender」→「Operational」。
- 右側「現在のログのフィルター」で
1000,1001を指定。
ID 1001 の「結果コード」が 0 であれば成功です。結果コード 2 はユーザー中断、3 は内部エラーを示します。
なぜ「最終スキャン: 利用不可」と出るのか
Windows セキュリティのダッシュボードはオンラインスキャンのみを対象としたメタデータを参照しています。オフラインスキャンはクラウド連携せず WinPE レイヤーで完結するため、この欄が更新されず「利用不可」と表示されます。混乱を招きますが仕様ですので気にする必要はありません。
よくあるつまずきポイント
- msssWrapper.log が見つからない
スキャンが実行されていない / 別の AV が妨害 / OS の一時フォルダ破損が考えられます。 - 0x80508023 のあとに再起動ループ
隔離後にシステムファイルが欠落したケース。DISM /RestoreHealth と sfc /scannow を順に走らせ、問題が継続すれば復元ポイントでロールバックします。 - BitLocker と併用できる?
UEFI + TPM で自動アンロック構成なら問題なく起動します。PIN / パスワード式の場合は一度復号するか、Disable-BitLocker でオフにしてから実行すると確実です。
ログ監視を自動化する PowerShell サンプル
社内 PC を定期的に検査し、異常時だけメール通知したい場合は次のようにスクリプトを組めます。
$log = 'C:\Windows\Microsoft Antimalware\Support\msssWrapper.log'
$last = Get-Content $log -Tail 10
if ($last -notmatch 'Offline scan completed with 0x00000000') {
Send-MailMessage -From '[email protected]' `
-To '[email protected]' `
-Subject 'Defender Offline Scan Alert' `
-Body ($last | Out-String) `
-SmtpServer 'smtp.contoso.com'
}
スクリプトを タスク スケジューラ で毎起動時に実行すれば、検出時のみメールが飛びます。Azure AD 端末なら Microsoft Intune の Proactive Remediation で配信する方法も便利です。
トラブルが収まらないときの最終手段
- 定義ファイルのリセット:
MpCmdRun.exe -RemoveDefinitions -All→-SignatureUpdate - イメージの修復:
DISM /Online /Cleanup-Image /RestoreHealth→sfc /scannow - オフラインスキャン USB の作成: Windows セキュリティ GUI からは作れないため、
MDOSOfflineScan.isoを Rufus で書き込み。 - セーフモード + Defender フルスキャン で再検査。
まとめ
Windows Defender Offline Scan は UI に結果を表示しないため不安になりがちですが、以下の 4 ステップで確実に把握できます。
- msssWrapper.log 末尾の終了コードを確認
- 保護の履歴 に脅威エントリがあるか確認
- Get‑MpThreatDetection でスクリプト照会
- イベントビューアー の ID 1000+1001 をセットで追跡
「0x00000000」で終わっており脅威履歴が無ければ検出なし・システムはクリーンと判断して問題ありません。逆に検出があれば保護の履歴とログに詳細が残るため、隔離・削除・追加スキャンで対処できます。この記事の手順を運用フローに組み込み、証跡を残せる体制を整えておきましょう。

コメント