Windowsを使っていると、ときどきWindowsセキュリティ(Defender)からの通知を見ることがある。今回は、このWindowsセキュリティの機能をコマンドラインから使う方法を解説する。
そもそもDefenderとは?
以前からWindowsを使っているユーザーからすれば、Windowsのセキュリティ機能といえば「Defender」を思い浮かべるだろう。Defenderの名称は、Windows XP時代の2006年(これ以前にベータ版が配布されていた)にスパイウェア対策ソフトに使われた。これは買収した製品(GIANT Company SoftwareのGIANT AntiSpayware)の名前を変更したものだった。当時のWindowsは標準でコンピューターウイルス対策機能を持っていなかった。
Windows 7で、ウイルス対策機能を持つMicrosoft Security Essentialsに一旦置き換えられたが、Windows 8では、Defenderの名称でウイルス対策機能を含めて復活する。Windows 10では、ファイアウォールやさまざまなセキュリティ機能にDefenderの名称を使った。
2017年のRS3(Fall Creater Update。Windows 10 Ver.1709)以後は、Defenderはセキュリティ対策の総合ブランド名になった。ただしそのせいか、「Windows Defenderナントカ」「Microsoft Defenderカントカ」といった名前が氾濫し、さらにそれらの製品が統合されて別の名前になるなど、かなり混乱した様相があった。
現在では、Windowsのセキュリティ設定には「Windowsセキュリティ」という名称が使われている。ここは、もともとは「Windows Defender セキュリティ・センター」という名称だった。設定ページからはDefenderの名称が消えたものの、ヘルプページには残っている。
また、個別機能にもDefenderの名前が残る。たとえば、ウイルス対策機能が「Windows Defender Antivirus」(Microsoft Defender Antivirusとも、日本語ではWindows/Microsoft Defenderウイルス対策)、ファイアウォールが「Windows Defenderファイアウォール」である。現状、Microsoft Defenderという用語は、Microsoft 365で提供されるセキュリティ機能の名称として使われているようだ。ただし、Microsoftの常として、文書が混乱していることがある。
また、後述するmpcmdrun.exeコマンドやPowerShellコマンド、WMIのクラス名などに含まれる「MP」は、Microsoft Security Essentialで開発された「Microsoft Malware Protection Engine(MSMPENG)」の「Malware Protection」に由来する。現在でもmsmpeng.exeというプログラムがWindowsに含まれている。
ここでは、ウィルス対策のDefender Antivirusの機能を対象とする。Defenderファイアウォールに関しては、本連載の過去記事(「WindowsのファイアウォールをPowerShellから制御する」)を参考にしてほしい。
Defenderをコマンドラインから扱う
Windowsセキュリティの機能をコマンドラインから使うには、大きく3つの方法がある。1つはcmd.exeからも利用できるmpcmdrun.exeプログラム、もう1つはWIM(CIM)経由、最後はPowerShellコマンドだ。
なお、グループポリシー(gpedit.msc)の「コンピュータの構成」→「管理用テンプレート」→「Windowsコンポーネント」→「Microsoft Defender ウィルス対策」で、Defenderの挙動や一部設定を変更できる。グループポリシーはHome Editionなどで利用できないため、ここでは解説を省略する。なお、解説は以下のMicrosoftのサイト上にある(https://learn.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/use-group-policy-microsoft-defender-antivirus?view=o365-worldwide)。
mpcmdrun.exeに関しては、マイクロソフトのサイトにある「コマンドラインを使用して Microsoft Defender ウイルス対策を管理する」(https://learn.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/command-line-arguments-microsoft-defender-antivirus?view=o365-worldwide)に情報がある。コマンドは以下のパスにあり、PATH環境変数に設定がないため、パスを直接指定する必要がある。「-?」オプションでオンラインヘルプを表示する。
C:\Program Files\Windows Defender\MpCmdRun.exe
exeコマンドであるため、cmd.exeでも利用可能である。なお、後述するPowerShell Defender系コマンドとの違いだが、定義ファイルの扱いや各種レポート/ログの出力など、Defenderの「素」の機能に近いのがmpcmdrun.exeで、WMIとPowerShell側は主にDefender関連の管理を中心とした機能になる。
WMI(CIM)を使う場合には、
Get-CimInstance -ClassName MSFT_MpComputerStatus -Namespace root/microsoft/windows/defender -Property *
などとする。クラス名(以下の表)だけでなく名前空間(Namespace)も指定が必要になる。
これに関しては「WMI を使用してMicrosoft Defenderウイルス対策を構成する」(https://learn.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/use-wmi-microsoft-defender-antivirus?view=o365-worldwide)に解説があり、クラス名に関しては、「Windows Defender WMIv2 Provider(英語)」(https://learn.microsoft.com/ja-jp/previous-versions/windows/desktop/defender/windows-defender-wmiv2-apis-portal)に記述がある。ここでは、クラス名だけを挙げるのみにしておく。というのは、PowerShellのDefender系コマンドは、出力するオブジェクトがWMIのDefenderクラスをベースとしており、WMIの上に構築されているのだと思われるからだ。
この連載の記事
-
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 -
第447回
PC
この秋登場のWindows 11の新バージョン、Ver.24H2の状況を見る - この連載の一覧へ