Windows11でウイルススキャンをしようとしても、うまく動かないことがある。よく聞くのは次のような症状だ。
- 「クイックスキャン」を押しても、スキャンしたファイル数が0のまま進まない
- 「Microsoft Defender ウイルス対策(オフライン スキャン)」を選んで再起動しても、スキャンされずにそのままWindowsが起動する
- ファイルを右クリックしても「Microsoft Defender でスキャンする」が出てこない
- フルスキャンが途中で止まったように見えて、いつまでも終わらない
私のPCでも以前、クイックスキャンを実行しても0ファイルのまま進まなくなったことがある。そのときはDefenderのサービスそのものが起動できなくなっていた(原因と直し方はWindows Defenderが使用不可になった時の対処に書いた)。
結論から書くと、まずPowerShellで「Defenderが本当に動いているか」を確認し、動いているなら症状ごとに原因を切り分ける。スキャンできない原因は症状によって違うので、この記事では最初の確認と、症状別の直し方をまとめる。
まず確認:Defenderが動いているか
管理者権限のPowerShellで次を実行する。
Get-MpComputerStatus | Select-Object AMRunningMode, AMServiceEnabled, AntivirusEnabled, AntivirusSignatureLastUpdated, QuickScanEndTime, FullScanEndTime
見るポイントは次のとおり。
AMRunningModeがNormalなら、Defenderがメインのウイルス対策として動いている。Passive Modeなどになっていたら、他社のウイルス対策ソフトがメインになっている(後述)AMServiceEnabledやAntivirusEnabledがFalseなら、Defenderの本体が動いていない。スキャンボタンを押しても進まないのは当然なので、Windows Defenderが使用不可になった時の対処の手順でサービスを確認するAntivirusSignatureLastUpdated(定義ファイルの更新日時)が何日も前なら、定義ファイルの更新が止まっているQuickScanEndTime・FullScanEndTimeは、最後にスキャンが完了した日時。空なら一度も完了していない
そもそもコマンドがエラーになる場合や、Windowsセキュリティの画面に「IT管理者によって制限されています」と出る場合は、「IT管理者によって制限されています」と出る時の対処を先に見てほしい。
他社のウイルス対策ソフトが入っていないか
AMRunningModeがNormal以外なら、ウイルスバスターやノートンなどがメインのウイルス対策になっていて、Defenderは控えに回っている。この状態だと、オフラインスキャンは使えない(Microsoftのドキュメントでも、Defenderがメインのウイルス対策であることが条件になっている)。登録されているウイルス対策ソフトは次で確認できる。
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntivirusProduct | Select-Object displayName
使っていないソフトならアンインストールして再起動する。他社のソフトを使い続けたいまま、Defenderでもときどきスキャンしたいなら、「ウイルスと脅威の防止」→「Microsoft Defender ウイルス対策のオプション」にある「定期的なスキャン」をオンにする方法もある。
症状①:クイックスキャンが0ファイルのまま進まない
Defenderが動いているのに進まない場合は、画面(Windowsセキュリティのアプリ)を通さず、PowerShellから直接スキャンを実行してみる。
Start-MpScan -ScanType QuickScan
同じことは、Defender付属のコマンドラインツールでもできる。1行目がクイックスキャン、2行目がフルスキャンだ(-ScanTypeの数字で切り替わる)。
"C:\Program Files\Windows Defender\MpCmdRun.exe" -Scan -ScanType 1 "C:\Program Files\Windows Defender\MpCmdRun.exe" -Scan -ScanType 2
コマンドからなら最後まで動く場合は、Windowsセキュリティのアプリ側がおかしい。「設定」→「アプリ」→「インストールされているアプリ」→「Windows セキュリティ」の「…」→「詳細オプション」→「リセット」で初期化する。PowerShellなら次の1行でもよい。
Get-AppxPackage Microsoft.SecHealthUI | Reset-AppxPackage
コマンドでもエラーになる場合は、定義ファイルを更新してから再度試す。
Update-MpSignature
更新も失敗するなら、定義ファイルが壊れている可能性がある。管理者権限のコマンドプロンプトで、一度消してから取り直す。
"C:\Program Files\Windows Defender\MpCmdRun.exe" -RemoveDefinitions -DynamicSignatures "C:\Program Files\Windows Defender\MpCmdRun.exe" -SignatureUpdate
症状②:オフラインスキャンができない
オフラインスキャンは、「ウイルスと脅威の防止」→「スキャンのオプション」→「Microsoft Defender ウイルス対策(オフライン スキャン)」→「今すぐスキャン」で実行する。PCが再起動し、Windowsが起動する前の状態でスキャンが行われる仕組みだ。PowerShellからなら次の1行で実行できる(実行するとすぐに再起動するので、開いているファイルは先に保存しておくこと)。
Start-MpWDOScan
再起動してもスキャンされない場合は、次の3つを確認する。
確認①:Windows回復環境(WinRE)が無効になっていないか
オフラインスキャンは、Windows回復環境(WinRE)を使って動く。WinREが無効だと、エラーも出ずにスキャンが実行されない。管理者権限のコマンドプロンプトで状態を確認する。
reagentc /info
「Windows RE の状態」が「Disabled」になっていたら、次で有効にする。
reagentc /enable
確認②:BitLockerが有効になっていないか
システムドライブでBitLocker(デバイスの暗号化)が有効だと、再起動したときにBitLockerの回復キーを求められることがある。回復キーが手元にないと先に進めないので、実行前に保護を一時停止しておく。管理者権限のPowerShellで次を実行すると、次の再起動1回分だけ保護が止まり、その後は自動で元に戻る。
Suspend-BitLocker -MountPoint "C:" -RebootCount 1
確認③:Defenderがメインのウイルス対策になっているか
前述のとおり、他社のウイルス対策ソフトがメインだとオフラインスキャンは使えない。AMRunningModeがNormalになっているかを確認する。
スキャンが終わると通常どおりWindowsが起動する。結果は「ウイルスと脅威の防止」→「保護の履歴」で確認できる。
症状③:右クリックに「Microsoft Defender でスキャンする」が出ない
Windows11の新しい右クリックメニューには、この項目は最初から出ない。メニューの一番下の「その他のオプションを確認」を選ぶか、ファイルを選んでShift+F10を押すと、従来のメニューが開いて「Microsoft Defender でスキャンする」が出てくる。
従来のメニューにも出ない場合は、メニューの登録が消されている可能性がある。「右クリックメニューを整理する」系のツールで消されることが多い。登録されているかは次で確認できる。
reg query "HKCR\*\shellex\ContextMenuHandlers\EPP"
結果の「(既定)」に次の値が入っていれば、登録は残っている。
{09A47860-11B0-4DA5-AFA5-26D86198A780}
キーが見つからない場合は、使ったツールの設定で元に戻すのが一番安全だ。急ぎで特定のファイルやフォルダーだけスキャンしたいなら、右クリックメニューを使わずにPowerShellからできる。
Start-MpScan -ScanType CustomScan -ScanPath "C:\Users\<User>\Downloads"
症状④:フルスキャンが終わらない・途中で止まる
フルスキャンはPCの中のファイルをすべて調べるので、ファイルが多いと数時間かかることは珍しくない。圧縮ファイルや大きなファイルを調べている間は、画面のファイル数がしばらく増えず、止まったように見えることもある。
本当に止まっているのか、途中で失敗しているのかは、Defenderのイベントログで分かる。
Get-WinEvent -LogName "Microsoft-Windows-Windows Defender/Operational" -MaxEvents 200 | Where-Object { $_.Id -in 1000,1001,1002,1005 } | Format-Table -Auto TimeCreated, Id, Message
イベントIDの意味は次のとおり。
- 1000:スキャンが始まった
- 1001:スキャンが完了した
- 1002:スキャンが完了前に止められた
- 1005:スキャンが失敗した(メッセージにエラーコードが出る)
1000の後に何も記録されていなければ、まだ動いている。1005が出ていれば失敗しているので、症状①と同じく定義ファイルの更新とDefenderのサービスを確認する。何時間たっても終わらないなら、フルスキャンにこだわらず、クイックスキャンと、気になるフォルダーだけのカスタムスキャンに切り替えるのも手だ。
まとめ
- まず
Get-MpComputerStatusで、Defenderが動いているか、メインのウイルス対策になっているかを確認する - クイックスキャンが進まないなら、
Start-MpScanで直接実行して、アプリ側か本体側かを切り分ける - オフラインスキャンができないなら、WinRE・BitLocker・他社のウイルス対策ソフトの3つを確認する
- 右クリックに出ないのは、Windows11では「その他のオプションを確認」の中にあるのが普通
- フルスキャンが終わらないときは、イベントログ(1000・1001・1002・1005)で動いているかを確認する

コメント