【Windows】リアルタイム保護がオンにできない時の対処|グレーで押せない・「管理者によって管理されています」の原因

スポンサーリンク
Windows
スポンサーリンク

Windowsセキュリティの「ウイルスと脅威の防止の設定」で、「リアルタイム保護」がオンにできないことがある。よくあるのは次のような症状だ。

  • スイッチがグレーになっていて押せない
  • スイッチの下に「この設定は管理者によって管理されています。」と出ている
  • オンにしても、すぐにオフに戻る
  • 「ウイルスと脅威の防止」の画面そのものに、リアルタイム保護の項目が出てこない

私のPCでも以前、Defenderのサービスそのものが起動できなくなり、Windowsセキュリティが「使用不可」になったことがある(原因と直し方はWindows Defenderが使用不可になった時の対処に書いた)。リアルタイム保護がオンにできない場合も、原因は1つではない。

結論から書くと、まずPowerShellで「Defenderがメインのウイルス対策として動いているか」と「ポリシーでリアルタイム保護が止められていないか」を確認する。ほとんどは、他社のウイルス対策ソフトか、ポリシー(グループポリシー・レジストリ)のどちらかが原因だ。この記事では、確認のしかたと原因別の直し方をまとめる。

まず確認:Defenderとリアルタイム保護の状態

管理者権限のPowerShellで次を実行する。

Get-MpComputerStatus | Select-Object AMRunningMode, AMServiceEnabled, AntivirusEnabled, RealTimeProtectionEnabled, IsTamperProtected

見るポイントは次のとおり。

  • AMRunningModeがNormalなら、Defenderがメインのウイルス対策として動いている。Passive Modeなどになっていたり、コマンドがエラーになったりする場合は、原因①か原因③を見る
  • AMServiceEnabled・AntivirusEnabledがFalseなら、Defenderの本体が動いていない(原因③)
  • RealTimeProtectionEnabledがリアルタイム保護の今の状態。Falseならオフになっている
  • IsTamperProtectedは「改ざん防止」がオンかどうか(後述)

続けて、リアルタイム保護を止める設定が入っていないかを見る。

Get-MpPreference | Select-Object DisableRealtimeMonitoring, DisableBehaviorMonitoring, RealTimeScanDirection

Microsoftのドキュメントでは、DisableRealtimeMonitoringとDisableBehaviorMonitoringがFalse、RealTimeScanDirectionが0(送受信の両方を監視)になっているのが、リアルタイム保護が有効な状態とされている。

原因①:他社のウイルス対策ソフトが入っている

ウイルスバスターやノートン、マカフィーなど、他社のウイルス対策ソフトが入っていると、Defenderは自動的に止まる。Microsoftのドキュメントでは、Windows 10・11で他社製品がメインになっているとき、Defenderは「無効モード」になると書かれている(スマートアプリコントロールがオンのときは「パッシブモード」)。この状態では、Defenderのリアルタイム保護は動かないので、スイッチをオンにできないのは正常な動きだ。

登録されているウイルス対策ソフトは、次で確認できる。

Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntivirusProduct | Select-Object displayName

Windowsセキュリティの画面なら、「ウイルスと脅威の防止」→「プロバイダーの管理」でも確認できる。

他社のソフトを使い続けるなら、Defenderのリアルタイム保護はオフのままでよい(2つのソフトが同時にリアルタイムで監視すると、動作が重くなったり競合したりする)。Defenderに戻したいなら、他社のソフトをアンインストールして再起動する。期限切れの体験版がそのまま残っていることもよくあるので、心当たりがなくても一覧を確認してほしい。

アンインストールしたのに一覧に名前が残っている場合は、削除が中途半端になっている可能性がある。多くのメーカーが専用の削除ツールを配布しているので、メーカーのサポートページで「削除ツール」「アンインストールツール」を探して実行する。

原因②:ポリシーでリアルタイム保護が止められている

スイッチの下に「この設定は管理者によって管理されています。」と出る場合は、グループポリシー(またはその値が入ったレジストリ)で、リアルタイム保護が止められている。ポリシーで止められていると、Windowsセキュリティの画面からも、PowerShellからもオンにできない。

会社や学校のPCなら、この設定は管理者が意図して入れたものだ。自分で消さずに、PCの管理者に相談してほしい。ここから先は、自分で管理している個人のPCの場合の話だ。

レジストリで確認する

管理者権限のコマンドプロンプトかPowerShellで次を実行する。

reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /s

結果に次の値があれば、それが原因だ。

  • Real-Time Protectionの下のDisableRealtimeMonitoringが0x1 → リアルタイム保護をオフにする設定
  • Real-Time Protectionの下のDisableBehaviorMonitoringが0x1 → 動作の監視をオフにする設定
  • Windows Defenderの直下のDisableAntiSpywareが0x1 → Defender自体をオフにする設定

何も表示されない(キーが見つからない)なら、ポリシーは入っていない。原因①・③・④を見る。

直し方(Pro版):グループポリシーを「未構成」に戻す

Pro版のWindowsなら、Win+Rで次を入力してグループポリシーエディターを開く。

gpedit.msc

「コンピューターの構成」→「管理用テンプレート」→「Windows コンポーネント」→「Microsoft Defender ウイルス対策」→「リアルタイム保護」を開き、「リアルタイム保護をオフにする」が「有効」になっていたら「未構成」に戻す。同じ場所の「動作の監視を有効にする」が「無効」になっていたら、これも「未構成」に戻す。Defender自体が止められている場合は、ひとつ上の「Microsoft Defender ウイルス対策」にある「Microsoft Defender ウイルス対策を無効にする」を「未構成」に戻す。

戻したら、管理者権限のコマンドプロンプトで次を実行してポリシーを反映し、PCを再起動する。

gpupdate /force

直し方(Home版):レジストリの値を消す

Home版にはgpeditがないので、レジストリの値を直接消す。消す前に、必ずキーごとバックアップを取っておくこと(デスクトップにwd-policy-backup.regとして保存される)。

reg export "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" "$env:USERPROFILE\Desktop\wd-policy-backup.reg"
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /f

DisableBehaviorMonitoringやDisableAntiSpywareも入っていた場合は、同じように消す。

reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableBehaviorMonitoring /f
reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiSpyware /f

消したらPCを再起動し、最初のGet-MpComputerStatusでRealTimeProtectionEnabledがTrueになったかを確認する。

こうした値は、「Windowsを軽くする」「Defenderを止める」といったツールや手順で入れられていることが多い。使ったツールに元に戻す機能があるなら、そちらで戻すのが一番安全だ。値を消してもしばらくすると戻ってしまうなら、そのツールが常駐して値を書き戻していないかを確認する。

改ざん防止との関係

いまのWindowsでは、「ウイルスと脅威の防止の設定」にある「改ざん防止」が既定でオンになっている。Microsoftのドキュメントによると、改ざん防止がオンのときは、リアルタイム保護はオンのまま保たれ、レジストリやグループポリシーでDefenderの設定を変えようとしてもブロックされる(変更は成功したように見えるが、実際には反映されない)。

そのため、IsTamperProtectedがTrueなのにリアルタイム保護がオフになっている場合は、ポリシー以外の原因(原因①・③・④)も疑ったほうがよい。逆にIsTamperProtectedがFalseなら、ポリシーの値がそのまま効いている可能性が高い。原因を取り除いてリアルタイム保護が戻ったら、改ざん防止もオンにしておくとよい。

原因③:Defenderのサービスが動いていない

最初の確認でAMServiceEnabledやAntivirusEnabledがFalseだった場合や、Get-MpComputerStatusそのものがエラーになる場合は、Defenderの本体(WinDefendサービス)が動いていない。サービスの状態は次で確認できる。

Get-Service WinDefend, WdFilter, SecurityHealthService, wscsvc | Format-Table -Auto DisplayName, Name, StartType, Status

WinDefendがRunningになっていなければ、リアルタイム保護もオンにできない。私のPCでDefenderが使用不可になったときも、このサービスが起動できなくなっていた(サービスに登録されている実行ファイルのパスが存在しなくなっていた)。確認のしかたと直し方はWindows Defenderが使用不可になった時の対処にまとめてある。

原因④:定義ファイルやWindowsセキュリティのアプリがおかしい

ここまでに当てはまらないのにオンにできない場合は、画面(Windowsセキュリティのアプリ)を通さず、PowerShellから直接オンにしてみる。

Set-MpPreference -DisableRealtimeMonitoring $false

これでオンになるなら、Windowsセキュリティのアプリ側がおかしい。次の1行でアプリを初期化する(「設定」→「アプリ」→「インストールされているアプリ」→「Windows セキュリティ」の「…」→「詳細オプション」→「リセット」と同じ)。

Get-AppxPackage Microsoft.SecHealthUI | Reset-AppxPackage

PowerShellからでもオンにならない場合は、定義ファイルを更新し、Windows Updateで更新プログラムをすべて入れてから、再起動してもう一度試す。Defenderの本体(プラットフォーム)もWindows Updateで更新される。

Update-MpSignature

スキャンそのものもうまく動かない場合は、Windows11でウイルススキャンできない時の対処も見てほしい。

補足:オフにしても勝手にオンに戻るのは正常

逆に、「リアルタイム保護をオフにしたのに、しばらくするとオンに戻っている」という場合は、故障ではない。Microsoftのドキュメントにも、Windowsセキュリティでリアルタイム保護をオフにすると、少し時間がたつと自動的にオンに戻ると書かれている。一時的に止めたいとき(ソフトのインストールで誤検知されるときなど)の機能だと考えておけばよい。

まとめ

  • まずGet-MpComputerStatusとGet-MpPreferenceで、Defenderがメインで動いているか、リアルタイム保護を止める設定が入っていないかを確認する
  • 他社のウイルス対策ソフトが入っていると、Defenderは自動で止まる。使っていないならアンインストールする(削除ツールも使う)
  • 「この設定は管理者によって管理されています。」と出るなら、ポリシーが原因。会社のPCなら管理者に相談、個人のPCならDisableRealtimeMonitoringなどを「未構成」に戻すか消す
  • Defenderのサービスが動いていないなら、サービスから直す
  • それでもだめなら、Set-MpPreferenceで直接オンにし、アプリのリセット、定義ファイルとWindows Updateの更新を試す

参考

コメント

タイトルとURLをコピーしました