PowerShellでDefenderを管理する
さて、PowerShellには、次の表のようなコマンドが用意されている。
これは、
get-command -module defender
とすることで一覧が得られる。
また、Microsoftのサイトにも「Defender Module」(https://learn.microsoft.com/ja-jp/powershell/module/defender/?view=windowsserver2022-ps)があるのだが、「Start-MpRollback」についての解説がない。そのほか、「PowerShell コマンドレットを使用して Microsoft Defender ウイルス対策を構成する」(https://learn.microsoft.com/ja-jp/microsoft-365/security/defender-endpoint/use-powershell-cmdlets-microsoft-defender-antivirus?view=o365-worldwide)にも情報がある。
ウイルス対策の結果を調べるには「Get-MpThreatDetection」を使う。これは、Windowsセキュリティの「ウィルスと脅威の防止」→「現在の脅威」→「保護の履歴」に相当する情報である(冒頭画面)。
このコマンドが出力するオブジェクトに対象となるファイルパスがResourceプロパティに入る。ただし、このオブジェクトには、脅威(Threat)の名前が含まれていないのでThreatIDプロパティを使って、名前を検索する必要がある。
脅威の情報は、カタログにあり「Get-MpThreatCatalog」で得られる。ただし、カタログには、30万件弱の情報が含まれているため、扱いには注意が必要だ。このコマンドを実行するだけで3分以上時間がかかり、メモリ利用量が警告レベルを超えたというメッセージも表示される。このコマンドは、ThrottleLimitオプションを持つものの、1を指定しても警告は収まらない。使うには、変数などにいったん代入し、繰り返しコマンドを使わないようにした方がいいだろう。変数に入れることで、以後の処理を短時間で終えることができる。
似たようなコマンドに「Get-MpThreat」がある。こちらは、検出された脅威の種類だけを返し、検出履歴などを含まない。しかし、このオブジェクトには脅威の名称とThreatIDが含まれている。「Get-MpThreatDetection」と組み合わせて見ることで、基本的な情報が得られる。
PowerShellでGet-MpThreatCatalogの出力のような大量のデータから検索をする場合、Where-Objectコマンドでは、条件に一致する全てのオブジェクトを出力するためデータを全部調べるので効率が悪い。「ThreatID」などデータが一件のみと最初から分かっているなら、配列のwhereメソッドを使い、最初のヒットだけを取り出せばよい。具体的には、
$x=Get-MpThreatCatalog
$x.where({$_.ThreatID -eq $p.<ThreatID>},1)
のようにする。
Defender Antivirusには、多くの機能があるが、コマンドラインからもこれを扱うことができる。保護の履歴で対象になったファイル名を得る、脅威の名前をインターネット検索してみるといったことも、コマンドラインからなら簡単に行える。一応「Windowsセキュリティ」の「保護の履歴」では、各項目を開くとファイルのリストがあり、パス部分が選択可能で「Ctrl+C」でコピーできる。
この連載の記事
-
第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の状況を見る - この連載の一覧へ