Microsoft Defender Antivirusをコマンドラインで管理する場合、中心になるのは MpCmdRun.exe です。今回確認すべきポイントは、スキャンの実行方法そのものよりも、管理者権限での実行、正しい実行パス、戻り値の解釈、セキュリティインテリジェンス更新、クラウド保護の接続確認、プラットフォームのロールバック手順です。特に既存のバッチ、PowerShell、定期タスク、IntuneやConfigMgr経由の運用スクリプトで MpCmdRun.exe を使っている管理者は、最新の公式リファレンスに合わせて見直しておくべきです。(Microsoft Learn)
なお、2026年5月15日の更新情報として確認している場合でも、Microsoft LearnおよびGitHub上のメタデータでは 05/14/2026 と表示されています。時差や公開フィードの扱いで日付がずれることがあるため、本稿では「2026年5月中旬の公式更新」として、公式リポジトリで確認できる内容に基づいて整理します。(GitHub)
Microsoft Defenderの今回の更新でまず押さえるべきこと
今回の公式情報は、Microsoft Defender Antivirusの新しい脆弱性修正を知らせるものではなく、MpCmdRun.exe を使ったコマンドライン管理のリファレンス更新として見るのが適切です。対象はMicrosoft Defender for Endpoint Plan 1およびPlan 2で、前提はWindowsデバイスです。MpCmdRun.exe は、スキャン、セキュリティインテリジェンス更新、診断ログ収集、クラウド保護の接続確認などをスクリプトや定期タスクから実行したい場合に使います。(Microsoft Learn)
管理者が特に注目すべき変更点は、プラットフォームの復旧系コマンドである -RevertPlatform と -ResetPlatform がコマンド一覧に戻された点です。GitHubのコミット履歴でも「Added back -RevertPlatform and -ResetPlatform」として記録されています。あわせて、-WdEnable の明記、ASRの説明修正、記事種別のリファレンス化なども確認できます。(GitHub)
| 確認ポイント | 内容 | 実務上の影響 |
|---|---|---|
-RevertPlatform | Defenderプラットフォームを直前のバージョンへ戻す | 更新後の不具合切り分けや緊急回避手順に関係する |
-ResetPlatform | プラットフォームバイナリを %ProgramFiles%\Windows Defender 側へ戻す | 復旧手順に入れる場合は影響範囲を限定して実施する |
-WdEnable | Microsoft Defender Antivirusを再有効化する | サードパーティ製AVからの移行、誤って無効化された環境の復旧で確認する |
-ListCustomASR | カスタムAttack Surface Reductionルールを一覧化する | ASRルール監査や端末差異の確認に使える |
| 実行パスの明確化 | MpCmdRun.exe は通常PATHに含まれない | ハードコードされた古いスクリプトの失敗原因になりやすい |
影響を受けやすい環境
影響が大きいのは、Microsoft DefenderをGUIではなく自動化で運用している環境です。特に、端末数が多い企業、サーバーを含む混在環境、VDI、オフラインに近い閉域ネットワーク、SOCや情シスがインシデント対応時にスクリプトを流す環境では、今回のリファレンス更新を運用手順に反映しておく価値があります。
| 対象 | 確認すべきこと |
|---|---|
| Intune、ConfigMgr、GPOでDefenderを管理している環境 | コマンド実行とポリシー設定の役割が混在していないか |
| 定期タスクでスキャンや更新を実行している端末 | 管理者権限、実行パス、戻り値の処理 |
| WSUSやUNC共有で更新を配布している環境 | -SignatureUpdate -UNC のパス、共有権限、更新失敗時のログ |
| インシデント対応用の手順書がある組織 | フルスキャン、診断ログ収集、MAPS接続確認、ロールバック手順 |
| サードパーティ製AVからDefenderへ移行中の環境 | -WdEnable の利用可否、パッシブモード時の更新確認 |
| 開発者やSREがビルド端末・検証端末を管理する環境 | スクリプトでの戻り値判定、CPU使用率、タイムアウト設定 |
一方、macOS、Linux、Android、iOS向けのMicrosoft Defender for Endpoint運用は別のドキュメント体系で扱われます。今回の MpCmdRun.exe の前提はWindowsであるため、クロスプラットフォームの管理手順にそのまま流用しないように注意してください。(Microsoft Learn)
MpCmdRunを実行する前に確認する基本設定
MpCmdRun.exe を使うときの最初の落とし穴は、コマンドそのものではなく「どこから、どの権限で実行しているか」です。公式ドキュメントでは、管理者として開いたコマンドプロンプトで実行すること、また MpCmdRun.exe のフォルダーは既定でPATHに含まれないため、事前にフォルダーへ移動する必要があると説明されています。(Microsoft Learn)
Windows x64環境では、主に次の場所を確認します。
C:\Program Files\Windows Defender
C:\ProgramData\Microsoft\Windows Defender\Platform\<antimalware platform version>
最新の MpCmdRun.exe は、利用可能であれば次のようなプラットフォームバージョン配下にあります。
C:\ProgramData\Microsoft\Windows Defender\Platform\<antimalware platform version>
運用でバージョン番号を固定すると、プラットフォーム更新後にパスが変わって失敗することがあります。バッチや定期タスクでは、固定パスよりも「最新のPlatformフォルダーを選ぶ」考え方で設計しましょう。公式ドキュメントでは、利用可能な最適な場所へ移動するための拡張 cd コマンドも示されています。(Microsoft Learn)
(set "_done=" & if exist "%ProgramData%\Microsoft\Windows Defender\Platform\" (for /f "delims=" %d in ('dir "%ProgramData%\Microsoft\Windows Defender\Platform" /ad /b /o:-n 2^>nul') do if not defined _done (cd /d "%ProgramData%\Microsoft\Windows Defender\Platform\%d" & set _done=1)) else (cd /d "%ProgramFiles%\Windows Defender")) >nul 2>&1
まずは次のコマンドで、対象端末で利用できるオプションを確認します。
MpCmdRun.exe -?
バッチファイル内で使う場合は、%d を %%d にする必要があります。手元のコマンドプロンプトで成功しても、.bat 化した瞬間に失敗する典型的な原因なので注意してください。
スキャン運用で使う主要コマンド
Microsoft Defenderのコマンドライン管理で最もよく使うのはスキャンです。ただし、すべての端末でフルスキャンを一斉に走らせると、CPU、ディスクI/O、VDI基盤、業務アプリに影響することがあります。目的に応じてクイックスキャン、フルスキャン、カスタムスキャンを使い分けるのが基本です。
| 目的 | コマンド例 | 使いどころ | 注意点 |
|---|---|---|---|
| クイックスキャン | MpCmdRun.exe -Scan -ScanType 1 | 日常的な確認、軽微な調査 | 既定のタイムアウトは1日 |
| フルスキャン | MpCmdRun.exe -Scan -ScanType 2 | 感染疑い、重要端末の調査、移行前後の確認 | 既定のタイムアウトは7日。業務時間中の一斉実行は避ける |
| カスタムスキャン | MpCmdRun.exe -Scan -ScanType 3 -File "C:\Temp" | 特定フォルダーやファイルの確認 | パス指定ミスに注意 |
| ブートセクタースキャン | MpCmdRun.exe -Scan -ScanType 3 -BootSectorScan | 起動領域に関わる調査 | カスタムスキャンでのみ有効 |
| 実行中スキャンの中止 | MpCmdRun.exe -Scan -Cancel | 想定外に長いスキャンの停止 | クイックまたはフルスキャンの中止を試みる |
| CPU使用率の調整 | MpCmdRun.exe -Scan -ScanType 2 -CpuThrottling 30 | 業務時間帯やサーバーでの負荷抑制 | 既定値は50% |
-ScanType は、0 がデバイス構成に従う既定、1 がクイック、2 がフル、3 がカスタムです。また、戻り値にも注意が必要です。公式ドキュメントでは、戻り値 0 は「マルウェアなし」だけでなく「マルウェアを検出して修復成功」も含み、戻り値 2 は「未修復」「ユーザー操作が必要」「スキャンエラー」などを含むと説明されています。(Microsoft Learn)
つまり、監視スクリプトで 0 を単純に「何も起きなかった」と扱うと、検出後に自動修復された事実を見落とす可能性があります。詳細な判定が必要な場合は、イベントログ、Microsoft Defenderポータル、診断ログ、必要に応じて -ReturnHR の利用を組み合わせて確認しましょう。
セキュリティインテリジェンス更新で確認すべきこと
Microsoft Defender Antivirusは、セキュリティインテリジェンス、エンジン、プラットフォームの更新が保護の前提になります。公式情報では、Defender Antivirusを最新に保つことが重要であり、パッシブモードで動作している場合でも保護更新を適用する必要があると説明されています。(Microsoft Learn)
コマンドラインで更新を確認・実行する代表的な例は次のとおりです。
MpCmdRun.exe -SignatureUpdate
UNC共有から更新する場合は、次のように指定します。
MpCmdRun.exe -SignatureUpdate -UNC \\FileServer\ShareName
Microsoft Malware Protection Centerから直接取得する場合は、次の形式です。
MpCmdRun.exe -SignatureUpdate -MMPC
閉域ネットワークやプロキシ制御が厳しい環境では、-MMPC がそのまま通るとは限りません。通常運用では、Windows Update、WSUS、Software Update Point、UNC共有など、自社の更新経路と整合する方法を選ぶべきです。公式情報でも、製品更新の配布方法としてWSUS、Microsoft Configuration Manager、通常のWindows更新、UNCファイル共有などが挙げられています。(Microsoft Learn)
プラットフォームのロールバックとリセットは慎重に扱う
今回の更新で特に管理者が見直したいのが、-RevertPlatform と -ResetPlatform の扱いです。これらは便利な一方で、日常的に使うコマンドではありません。更新後に互換性問題や予期しない不具合が出た場合に、影響範囲を絞って実行する復旧用コマンドとして考えるべきです。
| シナリオ | コマンド | 判断基準 |
|---|---|---|
| セキュリティインテリジェンスを以前の状態へ戻す | MpCmdRun.exe -RemoveDefinitions -All | 検出定義更新後に誤検知が疑われる場合 |
| エンジンを以前のバージョンへ戻す | MpCmdRun.exe -RemoveDefinitions -Engine | エンジン更新後の不具合切り分け |
| 動的に取得したセキュリティインテリジェンスだけ削除 | MpCmdRun.exe -RemoveDefinitions -DynamicSignatures | 動的署名が原因か確認したい場合 |
| プラットフォームを前のバージョンへ戻す | MpCmdRun.exe -RevertPlatform | 更新直後の問題を短期的に回避する場合 |
| OS同梱側のDefenderプラットフォームへ戻す | MpCmdRun.exe -ResetPlatform | 通常のロールバックで解消しない復旧時 |
Microsoft Defender Antivirusのプラットフォーム更新は月次で提供され、最新のプラットフォームとエンジンを維持することがサポート上も重要です。ロールバックは「保護を弱める可能性がある操作」でもあるため、実行前に対象端末、理由、開始時刻、戻し方、再更新のタイミングを記録しておきましょう。(Microsoft Learn)
クラウド保護とMAPS接続の確認
Microsoft Defenderの次世代保護を運用するうえで、クラウド保護への接続確認は重要です。MpCmdRun.exe では、次のコマンドでMicrosoft Defender Antivirusのクラウドサービスと通信できるか確認できます。
MpCmdRun.exe -ValidateMapsConnection
このコマンドは、Windows 10 バージョン1703以降、Windows Server 2019以降で利用できると説明されています。エラー時は、Defenderサービスが無効になっている、管理者権限で実行していない、ファイアウォールやTLSインスペクションで通信が遮断されている、名前解決に問題がある、といった原因を切り分けます。(Microsoft Learn)
| エラー例 | よくある原因 | 確認ポイント |
|---|---|---|
800106BA | Microsoft Defender Antivirusサービスが無効 | サービス状態、サードパーティ製AV、移行設定 |
0x80070667 | 非対応OSで実行 | Windows 10 1703以降、Windows Server 2019以降か |
hr=80070005 | 管理者権限不足 | 昇格したコマンドプロンプトで再実行 |
httpcode=451 系 | ファイアウォール、TLSインスペクション | プロキシ、SSL復号、許可URL |
hr=80004005 | ネットワーク関連の問題 | DNS、プロキシ、経路、名前解決 |
ネットワーク接続の考え方は、Microsoft Defender Antivirus単体で使っているか、Microsoft Defender for Endpointを含む構成で使っているかによって確認先が変わります。公式のネットワーク接続ページでも、Defender for Endpointを使う場合はDefender for Endpoint側のプロキシとインターネット接続設定を参照するよう案内されています。(Microsoft Learn)
診断ログ収集とトレースで障害対応を速くする
障害対応やMicrosoftサポートへの問い合わせでは、スキャンを再実行するだけでなく、診断情報を正しく集めることが重要です。MpCmdRun.exe では、Defender Antivirus関連ログをCABファイルとして収集できます。
MpCmdRun.exe -GetFiles
既定では、次のような場所にサポートファイルが作成されます。
C:\ProgramData\Microsoft\Windows Defender\Support\MpSupportFiles.cab
中央の共有フォルダーへ集めたい場合は、-SupportLogLocation を使います。
MpCmdRun.exe -GetFiles -SupportLogLocation "\\FileServer\SecurityLogs"
ネットワーク保護の入力をトレースする場合は、次のように指定できます。
MpCmdRun.exe -CaptureNetworkTrace -Path C:\Windows\Temp\MpCmdRun
このとき、指定先には NT AUTHORITY\LocalService が書き込める必要があります。権限が足りないと、管理者で実行しているつもりでもトレース保存に失敗することがあります。(Microsoft Learn)
診断ログには端末名、パス、設定、検出情報など運用上の機微な情報が含まれる可能性があります。共有フォルダーに集約する場合は、アクセス権をセキュリティ担当者に限定し、保管期限と削除ルールを決めておきましょう。
除外設定、ASR、Device Controlの確認にも使える
MpCmdRun.exe はスキャンと更新だけのツールではありません。運用上の設定確認にも使えます。たとえば、特定のファイルやパスがスキャン除外に入っているかを確認するには、次の形式を使います。
MpCmdRun.exe -CheckExclusion -Path "C:\App\Data"
Attack Surface Reductionのカスタムルールを確認するには、次のコマンドが使えます。
MpCmdRun.exe -ListCustomASR
Device ControlのXMLポリシーを検証する場合は、グループポリシーファイルかルールファイルかを指定してテストします。
MpCmdRun.exe -DeviceControl -TestPolicyXml "C:\Policy\device-control.xml" -Rules
MpCmdRun.exe -DeviceControl -TestPolicyXml "C:\Policy\device-groups.xml" -Groups
本番配布前にXMLの構文や指定ミスを検証できるため、IntuneやConfigMgrで展開する前のチェック工程に入れておくと、誤配布による業務影響を減らせます。(Microsoft Learn)
管理者と開発者が見直すべき実装ポイント
Microsoft Defenderのコマンドライン管理を安定させるには、単に正しいコマンドを覚えるだけでは不十分です。実行環境、戻り値、ログ、権限、展開タイミングまで含めて設計する必要があります。
| 見直し項目 | 悪い例 | 推奨される対応 |
|---|---|---|
| 実行パス | MpCmdRun.exe をPATH前提で実行 | %ProgramData% 配下のPlatformフォルダー、または %ProgramFiles% 側へのフォールバックを用意する |
| 権限 | 標準ユーザーの定期タスクで実行 | 管理者権限、サービスアカウント、タスクの「最上位の特権で実行」を確認する |
| 戻り値判定 | 0 なら何も起きていないと判断 | イベントログやDefender側の検出結果も確認する |
| フルスキャン | 全端末に同時実行 | 部門、拠点、重要度ごとに段階展開する |
| 更新経路 | 端末ごとに直接インターネット接続 | WSUS、ConfigMgr、UNC共有、プロキシ設計と整合させる |
| ログ保存 | ローカルに置きっぱなし | 収集先、アクセス権、保存期間を決める |
| ロールバック | 不具合時に担当者判断で即実行 | 変更管理、対象限定、再更新計画をセットにする |
開発者が社内ツールや運用スクリプトに組み込む場合は、標準出力の文字列だけをパースする設計を避けましょう。表示文言は将来変わる可能性があります。戻り値、ログファイル、イベントログ、管理ポータル側の検出状態を組み合わせるほうが安定します。
展開前に行うべき実務手順
既存環境で MpCmdRun.exe を使っている場合は、次の順番で確認すると安全です。
代表端末で現在の状態を確認する
まず、Windowsクライアント、Windows Server、VDI、特殊な業務端末など、代表的な端末を選びます。各端末で管理者権限のコマンドプロンプトを開き、MpCmdRun.exe -?、クイックスキャン、-ValidateMapsConnection を実行して、基本動作を確認します。
MpCmdRun.exe -?
MpCmdRun.exe -Scan -ScanType 1
MpCmdRun.exe -ValidateMapsConnection
既存スクリプトのパス指定を棚卸しする
次に、バッチ、PowerShell、定期タスク、Intune remediation、ConfigMgrのスクリプトを確認します。C:\Program Files\Windows Defender\MpCmdRun.exe に固定しているもの、または MpCmdRun.exe だけで呼び出しているものは、プラットフォーム更新後やPATH未設定環境で失敗する可能性があります。
更新とロールバックの手順を分ける
-SignatureUpdate は通常運用の更新手順、-RevertPlatform や -ResetPlatform は障害時の復旧手順です。この2つを同じ運用書に雑に並べると、現場で誤実行されるリスクがあります。更新手順、誤検知対応手順、プラットフォーム不具合対応手順は分けて管理しましょう。
段階展開で負荷と検出結果を見る
フルスキャンや診断ログ収集は、端末やネットワークに負荷をかけます。最初は数台、次に1部署、最後に全体という形で展開し、CPU使用率、ディスクI/O、業務アプリへの影響、Defenderポータル上の検出結果を見ながら広げるのが安全です。
よくある失敗と回避策
MpCmdRun is not recognized as an internal or external command と表示される場合、多くはPATHに含まれていないことが原因です。MpCmdRun.exe の場所へ移動するか、フルパスで実行してください。公式ドキュメントでも、PATHに含まれないため %ProgramFiles%\Windows Defender または %ProgramData%\Microsoft\Windows Defender\Platform\<antimalware platform version> から実行する必要があると説明されています。(Microsoft Learn)
-ValidateMapsConnection が失敗する場合は、Defenderサービスの無効化、権限不足、非対応OS、プロキシ、ファイアウォール、TLSインスペクションを順に確認します。特に企業ネットワークでは、端末からMicrosoftのクラウド保護サービスへ直接通信できない構成が多いため、セキュリティチームとネットワークチームで許可ルールを確認する必要があります。(Microsoft Learn)
-DisableRemediation を安易に使うのも危険です。このオプションはカスタムスキャンでのみ有効で、検出後のアクションが適用されず、イベントログやUIに検出が表示されない一方、コマンド出力には表示されます。調査目的には役立ちますが、通常の保護運用では使いどころを限定すべきです。(Microsoft Learn)
今すぐ管理者が確認すべきチェックリスト
まず、既存のDefender運用スクリプトで MpCmdRun.exe のパスを固定していないか確認してください。次に、スキャン結果の戻り値を正しく解釈しているか、クラウド保護の接続確認を代表端末で実施しているか、更新経路がWSUSやConfigMgrなど自社の標準運用と一致しているかを見直します。
特に重要なのは、-RevertPlatform と -ResetPlatform を「使えるコマンド」として知るだけでなく、「誰が、どの条件で、どの端末に、どの承認で使うか」まで決めておくことです。Microsoft Defenderのコマンドライン管理は、緊急時に強力な武器になりますが、権限と影響範囲を誤ると業務停止や保護レベル低下につながります。
最後に、次の4点だけでも先に実施しておくと、今回の公式更新に対する最低限の対応は進められます。
- 代表端末で
MpCmdRun.exe -?と-ValidateMapsConnectionを実行する - 既存スクリプトの
MpCmdRun.exeパス指定を確認する -SignatureUpdate、-GetFiles、-Scanの運用手順を整理する-RevertPlatform、-ResetPlatformを障害時手順として扱い、通常運用から分離する
Microsoft Defenderを安全に運用するには、GUIやポリシー管理だけでなく、コマンドラインで何ができるかを把握しておくことが欠かせません。今回の更新を機に、MpCmdRun.exe を単発の便利コマンドではなく、スキャン、更新、診断、復旧を支える運用部品として見直しましょう。

コメント