Windows 10やWindows 11などの現代的なOSにおいて、標準のアンチウイルス機能であるWindows Defender(Microsoft Defender ウイルス対策)の存在は欠かせません。
一般的にはGUIの設定画面から操作することが多いですが、システム管理や自動化の現場ではコマンドラインを用いた操作が非常に重宝されます。
コマンドプロンプトやPowerShellを使いこなすことで、複数のPCに対する一括処理や、スケジュール設定によるスキャンの自動実行が可能になります。
本記事では、エンジニアや高度なWindowsユーザーに向けて、Windows Defenderをコマンドラインから制御する具体的な手順を網羅して紹介します。
Windows Defenderをコマンドで操作するメリット
Windows Defenderをマウス操作ではなく、あえてコマンドラインで操作することには多くの利点が存在します。
まず第一に、定型業務の自動化が可能になる点が挙げられます。
バッチファイルやPowerShellスクリプトを作成しておけば、毎日特定の時刻にクイックスキャンを実行させるといった設定が容易に行えます。
第二に、リモート環境からの管理がしやすくなるというメリットがあります。
サーバー版のWindowsや、画面転送が制限されている環境においても、SSHやリモートPowerShellを通じてセキュリティ状態を確認できます。
第三に、GUIが何らかの理由でフリーズしている場合や、セーフモードなどの制限された環境下でも操作を継続できる可能性が高まります。
トラブルシューティングの現場では、コマンド一つでスキャンを開始できるスキルが非常に役立ちます。
最後に、詳細なログを確認しながら作業を進められるため、問題の切り分けがスムーズになるという点も無視できません。
コマンドプロンプト(MpCmdRun.exe)を使用した操作
Windows Defenderには、コマンドプロンプトから利用できる専用のコマンドラインツールMpCmdRun.exeが用意されています。
このツールは非常に強力で、スキャンだけでなく定義ファイルの更新や隔離ファイルの復元など、多くの機能を備えています。
MpCmdRun.exeの格納場所と実行の準備
MpCmdRun.exeは通常、特定のシステムディレクトリに格納されています。
最近のWindowsでは、C:\Program Files\Windows Defender\MpCmdRun.exeに配置されていることが一般的です。
ただし、環境によっては実行ファイルのパスが異なる場合があるため、注意が必要です。
このコマンドを実行する際は、必ず管理者権限でコマンドプロンプトを起動してください。
管理者権限がない場合、セキュリティ上の制限によりコマンドが拒否されることがあります。
ウイルススキャンを実行する
コマンドプロンプトからスキャンを実行する場合、-Scanオプションを使用します。
スキャンの種類は、引数として渡す数値によって「クイックスキャン」「フルスキャン」「カスタムスキャン」に分けられます。
クイックスキャンの実行
システムの重要な領域のみを素早くチェックしたい場合は、以下のコマンドを入力します。
"C:\Program Files\Windows Defender\MpCmdRun.exe" -Scan -ScanType 1
Scanning...
Scan finished.
これは、GUIから実行する「クイックスキャン」と同じ動作をコマンドラインで再現するものです。
フルスキャンの実行
PC全体のファイルをくまなく調査する場合は、スキャンタイプに「2」を指定します。
"C:\Program Files\Windows Defender\MpCmdRun.exe" -Scan -ScanType 2
フルスキャンは非常に時間がかかるため、バックグラウンドでの長時間作業を想定して実行してください。
特定のフォルダを指定したカスタムスキャン
特定のドライブやディレクトリだけをスキャンしたい場合は、-ScanType 3と-Fileオプションを組み合わせて使用します。
"C:\Program Files\Windows Defender\MpCmdRun.exe" -Scan -ScanType 3 -File "C:\Downloads"
これにより、ダウンロードフォルダ内のみをピンポイントで検査することが可能です。
定義ファイルの更新(アップデート)
最新の脅威に対応するためには、ウイルス定義ファイル(シグネチャ)を常に最新の状態に保つ必要があります。
コマンドラインから定義ファイルを更新するには、-SignatureUpdateオプションを利用します。
"C:\Program Files\Windows Defender\MpCmdRun.exe" -SignatureUpdate
インターネットに接続されている環境であれば、最新の定義ファイルが自動的にダウンロードされ、適用されます。
その他の便利な機能
MpCmdRun.exeには、スキャン以外にも便利なオプションが多数存在します。
例えば、過去の検出履歴を表示したり、ブートセクタのスキャンを行ったりすることも可能です。
| オプション | 機能の概要 |
|---|---|
-RestoreAll | 隔離されているすべてのアイテムを元の場所へ復元します。 |
-RemoveDefinitions | キャッシュされた定義ファイルを削除し、トラブルを解消する際に使用します。 |
-GetFiles | トラブルシューティング用のログ情報を収集してパッケージ化します。 |
PowerShellを使用した操作
現代のWindows管理において、コマンドプロンプト以上に強力なのがPowerShellです。
PowerShellには「Defender」モジュールが標準で含まれており、オブジェクト指向の直感的なコマンドレットでWindows Defenderを操作できます。
現在のステータスを確認する
まずは、Windows Defenderが正常に動作しているか確認するためのコマンドを紹介します。
Get-MpComputerStatus
このコマンドを実行すると、リアルタイム保護の有効無効、定義ファイルのバージョン、最後にスキャンした日時などが一覧で表示されます。
特定の情報、例えば「リアルタイム保護が有効か」だけを知りたい場合は、プロパティを指定して抽出することも可能です。
(Get-MpComputerStatus).RealTimeProtectionEnabled
PowerShellでスキャンを実行する
PowerShellでは、Start-MpScanというコマンドレットを使用してスキャンを開始します。
引数の指定方法がコマンドプロンプトとは異なるため、記法を覚えておくと便利です。
クイックスキャンとフルスキャン
クイックスキャンを実行するには以下の通り入力します。
Start-MpScan -ScanType QuickScan
フルスキャンを実行する場合は、引数を変更します。
Start-MpScan -ScanType FullScan
PowerShell版の利点は、プログレスバーが表示されるなど、実行状況の把握がしやすい点にあります。
定義ファイルの更新
定義ファイルの更新も非常にシンプルです。
Update-MpSignature
このコマンドを実行すると、Microsoftのサーバーへ接続し、最新のセキュリティ更新プログラムを確認します。
設定値の確認と変更
Windows Defenderの動作設定をカスタマイズするには、Get-MpPreferenceとSet-MpPreferenceを使用します。
例えば、特定の拡張子やフォルダをスキャン対象から除外したい(除外設定)場合に非常に役立ちます。
# スキャン対象から除外するフォルダを追加
Set-MpPreference -ExclusionPath "C:\Tools"
このように、GUIの奥深くにある設定項目をコマンド一行で変更できるのは、PowerShellならではの強みです。
設定変更には必ず管理者権限が必要ですので、注意してください。
コマンドプロンプトとPowerShellの使い分け
どちらのツールを使用すべきか迷うことがありますが、基本的には新しい環境であればPowerShellを推奨します。
PowerShellは出力結果を後続の処理に渡しやすく、スクリプトの柔軟性が高いためです。
一方で、旧来のシステムとの互換性を保つ必要がある場合や、極めてシンプルなバッチファイルを作成する場合は、コマンドプロンプト(MpCmdRun.exe)が適しています。
MpCmdRun.exeはWindows Defenderのコア部分に近いツールであり、非常に安定した動作が期待できます。
用途に合わせて、最適な手段を選択できるようにしておきましょう。
自動化の活用例:タスクスケジューラとの連携
コマンドラインでの操作が可能になると、次に検討すべきは「定期実行」です。
Windows標準の「タスクスケジューラ」と組み合わせることで、Defenderの管理を完全自動化できます。
例えば、毎週日曜日の深夜にフルスキャンを実行し、その結果をログに保存するスクリプトを登録しておけば、管理の手間を大幅に削減できます。
タスクの「操作」タブにおいて、プログラムにpowershell.exeを指定し、引数に-Command "Update-MpSignature; Start-MpScan -ScanType FullScan"と入力するだけで設定完了です。
企業内のPC管理において、こうした自動化手法はセキュリティレベルを均一に保つために極めて有効な手段となります。
トラブルシューティングと注意点
コマンドラインからの操作を行う際、いくつか注意すべきポイントがあります。
まず、サードパーティ製のアンチウイルスソフトがインストールされている場合、Windows Defenderは自動的に無効化されます。
この状態ではコマンドを実行しても「サービスが動作していない」旨のエラーが表示されることがあります。
また、実行ファイルのパスにスペースが含まれる場合は、必ずダブルクォーテーションで囲むようにしてください。
コマンドが正しく動作しないときは、イベントビューアーの「アプリケーションとサービスログ」から、Microsoft-Windows-Windows Defenderのログを確認することをお勧めします。
ここにはコマンド実行時のエラー詳細が記録されているため、解決のヒントが得られます。
まとめ
Windows Defenderは、コマンドプロンプトやPowerShellを介して高度に制御することが可能です。
MpCmdRun.exeによるシンプルかつ確実な操作と、PowerShellのDefenderモジュールによる柔軟な管理手法を使い分けることで、PCのセキュリティメンテナンスは劇的に効率化されます。
特に自動化やリモート管理を視野に入れている方にとって、これらのコマンドを習得することは必須と言えるでしょう。
本記事で紹介したコマンドを参考に、ぜひ日々のセキュリティ運用に取り入れてみてください。
正しくコマンドを使いこなすことで、目に見えない脅威からシステムを守る力を、より強固なものにできるはずです。
