Microsoft Defender(以前の名前はWindows Defender)が動いているかは、Windows セキュリティの「ウイルスと脅威の防止」の画面か、PowerShellの Get-MpComputerStatus で確認できます。止まっていた場合は、イベントログ「Windows Defender/Operational」を見ると、いつ止まったかが分かります。
この記事では、1台での確認手順、他社のウイルス対策ソフトがあるときの見え方、改ざん防止、止まった日時の追い方、グループポリシーで止められているケース、複数台で確かめるときの手間を順に説明します。
Defenderが動いているかを確かめる順番
- 1
画面で見る
Windows セキュリティ
- 2
コマンドで見る
Get-MpComputerStatus
- 3
止まった理由を探す
イベントログ・ポリシー
- 4
全台で確かめる
止まったときだけ知る
Windows セキュリティの画面で確認する
スタートメニューで「Windows セキュリティ」を開き、「ウイルスと脅威の防止」を選びます。緑のチェックが付き、「操作は不要です」と出ていれば、ウイルス対策は動いています。
続けて「ウイルスと脅威の防止の設定」の「設定の管理」を開き、次の2つがオンかを確かめます。
- リアルタイム保護:ファイルを開いたり保存したりするたびに検査する機能です。ここがオフだと、Defenderは常時の見張りをしていません。
- 改ざん防止:リアルタイム保護などの設定を、ほかのプログラムが勝手に変えられないようにする機能です(後で詳しく説明します)。
他社のウイルス対策ソフトを入れているPCでは、この画面に他社製品の名前が出ます。どの製品がPCを守っているかは、Windows セキュリティの「設定」(歯車)にある「プロバイダーの管理」で一覧にできます。
Windows Serverの場合
デスクトップ エクスペリエンスのあるWindows Serverでは、同じ画面で確認できます。画面のない Server Core では、次のPowerShellで確かめます。なお、Windows Server 2016・2019では、Windows セキュリティの画面に改ざん防止の状態が出ません。こちらもPowerShellで確かめます。
PowerShellで確認する(Get-MpComputerStatus)
PowerShellを管理者として開き、次を実行します。
Get-MpComputerStatus | Select-Object AMRunningMode, AMServiceEnabled, AntivirusEnabled, RealTimeProtectionEnabled, IsTamperProtected, AntivirusSignatureLastUpdated, AntivirusSignatureAge| 項目 | 見かた |
|---|---|
| AMRunningMode | Defenderの動き方。Normal=主のウイルス対策として動作、Passive=受動モード、EDR Block Mode=EDRのブロックモード |
| AMServiceEnabled | Defenderのサービスが動いているか(True=動作中) |
| AntivirusEnabled | ウイルス対策が有効か(True=有効) |
| RealTimeProtectionEnabled | リアルタイム保護が有効か(True=有効) |
| IsTamperProtected | 改ざん防止が有効か(True=有効) |
| AntivirusSignatureLastUpdated・AntivirusSignatureAge | ウイルスの定義(セキュリティ インテリジェンス)を最後に更新した日時と、そこからの日数 |
AMRunningMode が Normal、AntivirusEnabled と RealTimeProtectionEnabled が True なら、Defenderはふだんどおり動いています。Windows 10・11とWindows Server 2016以降で使えるコマンドです。
コマンドプロンプトで手早く見るなら、Defenderのサービス(WinDefend)の状態を出す方法もあります。STATE が RUNNING なら動いています。
sc query WinDefend定義の日付も見ておく
Update-MpSignature を実行します。PC版 月1,800円/台(初期費用0円)・サーバー版 月20,000円/台。初月無料ではじめられます(税別・目安)
他社のウイルス対策ソフトがあるときの見え方
「Defenderが無効」と出ても、異常とは限りません。他社のウイルス対策ソフトがあると、Defenderは次のように動きを変えます(Microsoft Defender for Endpoint に登録していない場合)。
| Windows | 主のウイルス対策 | Defenderの状態 |
|---|---|---|
| Windows 10・11 | Defender | 有効(アクティブ) |
| Windows 10・11 | 他社製品 | 自動で無効。Windows 11でスマート アプリ コントロールが有効なら、受動モードになることがある |
| Windows Server 2016以降 | Defender | 有効(アクティブ) |
| Windows Server 2016以降 | 他社製品 | 自動では切り替わらない。手で無効にする(または受動モードに設定する) |
受動モード(Passive)は、基本的に Defender for Endpoint に登録した端末で使われる動き方で、Defenderは主のウイルス対策としては働きません。Windows 10・11では、他社製品の期限が切れたりアンインストールされたりして保護が止まると、自動で無効になっていたDefenderが自動で有効に戻る仕組みがあります。
大切なのは、「いま、何かしらのウイルス対策が動いているか」と「前と変わっていないか」です。Windows 10・11では、Windows セキュリティに登録されているウイルス対策製品を次のコマンドで一覧にできます(Windows Serverではこの方法は使えません)。
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntivirusProduct | Select-Object displayName, timestampWindows Serverで他社製品を使うときは、Defenderと二重に動いていないかに注意します。逆に他社製品をやめたときは、Defenderを有効に戻し忘れていないかを確かめます。
改ざん防止(Tamper Protection)を確認する
改ざん防止は、Defenderの大事な設定を、ほかのプログラムやレジストリの書き換えで変えられないようにする機能です。有効にしていると、次のような設定が固定されます。
- リアルタイム保護・動作の監視・クラウドによる保護がオンのまま保たれる
- ウイルスの定義の更新が行われる
- 除外(検査しないフォルダーなど)を勝手に足したり変えたりできない
改ざん防止が有効なときは、グループポリシーやレジストリで設定を変えようとしても、成功したように見えて反映されません。変更が止められると、イベントID 5013が記録されます。
確認は、Windows セキュリティの「ウイルスと脅威の防止の設定」→「設定の管理」の「改ざん防止」か、PowerShellの IsTamperProtected で行います。
Get-MpComputerStatus | Select-Object IsTamperProtected, RealTimeProtectionEnabled組織で一括管理していないPCでは、管理者のアカウントで Windows セキュリティの画面からオンにできます。PowerShellでは、ふだんは改ざん防止を切り替えられません。
いつ止まったかをイベントログで追う
Defenderの動きは、イベントビューアーの「アプリケーションとサービス ログ → Microsoft → Windows → Windows Defender → Operational」に残ります。止まっていたときに見るイベントIDは次のとおりです。
| イベントID | 意味 |
|---|---|
| 5001 | リアルタイム保護が無効になった |
| 5000 | リアルタイム保護が有効になった |
| 5004 | リアルタイム保護の構成が変わった |
| 5007 | Defenderの設定が変わった(変更前と変更後の値が書かれる。除外の追加もここに出る) |
| 5010・5012 | マルウェアなどの検査(5010)、ウイルスの検査(5012)が無効になった |
| 5013 | 改ざん防止が、Defenderへの変更を止めた |
| 2001 | ウイルスの定義の更新に失敗した |
| 1116 | マルウェアなどを見つけた |
直近30日の分を、PowerShellでまとめて出すには次を実行します(管理者として実行)。
Get-WinEvent -FilterHashtable @{ LogName = 'Microsoft-Windows-Windows Defender/Operational'; Id = 5001, 5004, 5007, 5010, 5012, 5013, 2001; StartTime = (Get-Date).AddDays(-30) } -ErrorAction SilentlyContinue |
Select-Object TimeCreated, Id, Message | Format-List5001の時刻の前後に、ソフトのインストールや保守作業がなかったかを照らし合わせます。5007は、変更前と変更後の値を見ると、何が変わったかが分かります。Microsoftも、思い当たらない5007はマルウェアによる変更のおそれがあるので設定を確かめるよう案内しています。
グループポリシーで止められているケース
画面でリアルタイム保護をオンにしても、すぐ戻ってしまう、または操作できない場合は、グループポリシーで止められていることがあります。Windows セキュリティの画面に、組織によって管理されている旨の表示が出るのが目安です。
設定の場所は、グループポリシー(1台なら gpedit.msc)の「コンピューターの構成 → 管理用テンプレート → Windows コンポーネント → Microsoft Defender ウイルス対策 → リアルタイム保護」です。ここの「リアルタイム保護を無効にする」が「有効」になっていると、リアルタイム保護は止まります。
実際にどの設定が効いているかは、管理者のコマンドプロンプトやPowerShellで次のように確かめます。
gpresult /h C:\temp\gpresult.html
Get-MpPreference | Select-Object DisableRealtimeMonitoring, DisableBehaviorMonitoring
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /sDisableRealtimeMonitoring が True なら、リアルタイム保護を止める設定が入っています。よくあるのは、以前のトラブル対応や業務ソフトの導入のときに一時的に止め、そのまま戻し忘れているケースです。誰がいつ入れた設定かを確かめてから戻します。なお、改ざん防止が有効なら、グループポリシーでリアルタイム保護をオフにすることはできません。
よくあるつまずきと直し方
Get-MpComputerStatusがエラーになる
他社製品によってDefenderが無効になっているPCや、Windows ServerでDefenderの機能を削除したサーバーでは、状態を取得できずにエラーになることがあります。その場合は、Windows セキュリティの「プロバイダーの管理」や、上の SecurityCenter2 のコマンドで、ほかのウイルス対策が動いているかを確かめます。
イベントが見つからないと表示される
Get-WinEvent は、条件に合うイベントが1件もないとエラーを出します。期間内にDefenderが止まった記録がない、という意味なので、慌てる必要はありません。上の例のように -ErrorAction SilentlyContinue を付けると表示されなくなります。
オフにしても勝手にオンに戻る
Windows セキュリティの画面でリアルタイム保護をオフにしても、少し時間がたつと自動でオンに戻ります。一時的に止める操作のための仕組みなので、正常な動きです。
オンにしてもすぐオフに戻る
グループポリシーか、他社製品が原因のことがほとんどです。前の節の方法でポリシーを確かめ、他社製品があるなら、そちらが動いているかを確かめます。
止まったことに気づくのが大切な理由
Defenderが止まる理由の多くは、他社製品の導入や保守作業など、心当たりのあるものです。ただ、Microsoftも説明しているとおり、攻撃のときには、データを持ち出したりマルウェアを入れたりするために、セキュリティの機能を止めようとする動きがよく見られます。ランサムウェアでも、暗号化の前にウイルス対策を止める段階を通ることがあり、防御の停止は前兆の1つです。
大切なのは、止まったことにその日のうちに気づき、「誰が・なぜ止めたか」を答えられることです。心当たりがあれば、それで確認は終わります。ほかの前兆(社内の偵察・パスワードの持ち出し・バックアップの削除)の確かめ方は、ランサムウェアの前兆に気づく方法にまとめています。
複数台・全台で確かめるときの手間
Get-MpComputerStatus は -CimSession でほかのPCを指定できます。管理用のPCから、複数台をまとめて確かめる例です。
'PC01','PC02','PC03' | ForEach-Object {
try {
$s = Get-MpComputerStatus -CimSession $_ -ErrorAction Stop
[pscustomobject]@{ PC名 = $_; モード = $s.AMRunningMode; リアルタイム保護 = $s.RealTimeProtectionEnabled; 改ざん防止 = $s.IsTamperProtected; 定義の更新 = $s.AntivirusSignatureLastUpdated }
} catch {
[pscustomobject]@{ PC名 = $_; モード = '取得できない'; リアルタイム保護 = $null; 改ざん防止 = $null; 定義の更新 = $null }
}
} | Format-Table -AutoSize各PCでWinRMが有効になっている必要があります(前提条件はWindows Updateの適用状況をまとめて確認する方法で説明しています)。
この方法で残る手間
- 確かめたその瞬間の状態しか分かりません。夜中に止まって朝には戻っていた、という動きは、イベントログを1台ずつ見ないと分かりません。
- 持ち出し中・テレワーク中のPCには届かず、「取得できない」が残ります。
- 毎日続けるには、誰かが実行して結果を読む必要があります。夜間・休日は見る人がいません。
Windows標準のタスクスケジューラで、5001が記録されたらメールなどを送る仕組みも作れますが、1台ずつの設定になり、届いてもその場で止めるのは難しいのが実情です(手順は夜間・休日にPCの異変に気づく方法で紹介しています)。
防御の停止にその場で気づける形にする
1台ずつ確かめる場合と、1か所で管理する場合
1台ずつ確かめる
- 確かめた瞬間の状態しか分からない
- 止まった日時はイベントログを1台ずつ見る
- 夜間・休日は見る人がいない
1か所で管理する
- 全PC・サーバーの状態が1画面に並ぶ
- 防御の停止などの前兆があるときだけLINEに届く
- その場で画面確認・ネットワーク分離・電源オフ
アプリップリキーを使うと、アプリップリキーを入れた全PC・サーバーを1か所で管理できます。台数・利用者・OS・空き容量が1画面に並び、毎朝7時には前日のまとめがLINEに届くので、PCを1台ずつ見て回らずに済みます。そのうえで、Defenderの停止のような動きには、次のように気づけます。
- 前兆があるときだけ届く:防御の停止・バックアップの削除・社内の偵察・パスワードの持ち出しといった、ランサムウェアの前兆を検知すると、管理者ご本人が登録したLINEに届きます。何もない日は何も届きません。
- その場で確かめて止められる:LINEのボタンから、そのPCの画面の確認・ネットワーク分離・電源オフ(確認付き)ができます。外出先や休みの日でも、PCの前に行かずに対応できます。電源を切ったPCは、遠隔では起動できません。
- 監査ポリシーが無効なPCでも使える:Windowsの監査の設定を1台ずつ見直さなくても、前兆に気づけます。
- 心当たりのある動きは知らせない:保守で使う社内ツールなど、心当たりのある動きは、そのPC・その起動元に限って知らせないようにでき、大事な知らせが埋もれません。
各PCのDefenderの設定を一覧にする機能ではなく、止められたという動きに気づくための仕組みです。ADは要らず、ワークグループのPCでもそのまま使えます。インターネットにつながっていないPCは、管理の対象外です。
さらに、アプリップリキーはPC及びサーバーのログインを本人のスマホを鍵にしたワンタッチログインにします(PC版・サーバー版。リモートデスクトップでのログインも対象)。2要素認証になりますが、毎回の操作はスマホのワンタッチなので、社員の手間はほとんど増えません。
Windowsのログインは、パスワードを知っていれば誰でも本人として入れます
ウイルス対策を止めるには、多くの場合、そのPCの管理者として入る必要があります。そのログインがIDとパスワードだけなら、パスワードを知っている人は誰でも本人として入り、設定を変えられます。
パスワードだけのログイン
漏れた・推測された・メモを見られたパスワードで、そのまま本人として入れます。記録の上でも本人と区別できません。
2要素認証のログイン
パスワードに加えて、本人だけが持つもの(スマホなど)が必要です。パスワードを知っているだけでは入れません。
- VPNや社内Wi-Fiから社内に入られたあと、被害がPC・サーバーへ広がるかどうかは、このログインの部分で決まります。
- 顔・指紋・PIN(Windows Hello)は、ログインを簡単にする仕組みで、2要素認証ではありません。
- 2要素認証というと手間が増えそうですが、本人のスマホを鍵にしたワンタッチログインなら、初回の設定のあとはPINもWindowsのパスワードも打たずに、スマホのワンタッチで入れます。長いパスワードを覚えて打つ手間は、むしろなくなります。
よくある質問
Windows Defenderが有効かどうかをコマンドで確認するには
PowerShellで Get-MpComputerStatus | Select-Object AMRunningMode, AntivirusEnabled, RealTimeProtectionEnabled を実行します。AMRunningMode が Normal、AntivirusEnabled と RealTimeProtectionEnabled が True なら、Defenderが主のウイルス対策としてリアルタイム保護を行っています。Passive は他社製品と並べて動く受動モードです。
他社のウイルス対策ソフトを入れるとDefenderはどうなりますか
Windows 10・11では、Microsoft Defender for Endpoint に登録していない場合、他社製品を入れるとDefenderは自動で無効になります。Windows Serverは自動では切り替わらず、手動で無効にするか受動モードに設定します。他社製品の期限切れやアンインストールで保護が止まると、自動で無効になっていたDefenderは自動で有効に戻る仕組みがあります。
Defenderが止められた日時はどこで分かりますか
イベントビューアーの「アプリケーションとサービス ログ → Microsoft → Windows → Windows Defender → Operational」に残ります。イベントID 5001がリアルタイム保護の無効化、5007が設定の変更、5013が改ざん防止による変更のブロックです。
リアルタイム保護をオフにしても、しばらくするとオンに戻るのはなぜですか
Windows セキュリティの画面でリアルタイム保護をオフにしても、少し時間がたつと自動でオンに戻る仕組みになっています。ずっとオフのままなら、グループポリシーや他社製品など、別の理由で止められている可能性があります。
いまの運用を棚卸ししてみる
ウイルス対策の状態を見て回る作業のように、台数の分だけ人の手がかかる作業は、ログインの記録や退職者のアカウントの扱いなどにも残っていることがあります。applippliの無料棚卸しでは、10問・約3分で、PCログインまわりの対応状況を「解決済み/一部解決/人手で対応/未解決」に仕分けた一覧にできます。個人情報の入力は不要で、会員登録もありません。
参考・出典
- Microsoft Learn「Get-MpComputerStatus」
- Microsoft Learn「Microsoft Defender ウイルス対策と他のセキュリティ製品との互換性」
- Microsoft Learn「Windows で改ざん防止を構成する」
- Microsoft Learn「Microsoft Defender ウイルス対策の常時保護を構成する」
- Microsoft Learn「Microsoft Defender ウイルス対策のイベント ID とエラー コード」
※ 本記事は2026年11月時点の一般的な解説です。表示される項目名は、Windowsの版や表示言語によって変わることがあります。
