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」でコピーできる。
この連載の記事
-
第429回
PC
Windows Updateの「利用可能になったらすぐに最新の更新プログラムを入手する」はオンにした方がいいか? -
第429回
PC
WindowsからWordPadが廃止! RTF(Rich Text Format)はどうなる? -
第428回
PC
Google/Bingで使える検索オプション -
第427回
PC
WindowsのPowerShellのプロファイルを設定する -
第426回
PC
WindowsでAndroidスマホをWebカメラにする機能を試した -
第425回
PC
無料で使えるExcelにWord、Microsoft 365のウェブ版を調べた -
第424回
PC
Windowsの基本機能であるクリップボードについてあらためて整理 -
第423回
PC
PowerShellの今を見る 2つあるPowerShellはどっち使えばいい? -
第422回
PC
Windows 11の目玉機能が早くも終了、Windows Subsystem for Android(WSA)を振り返る -
第421回
PC
進化しているPowerToys LANで接続したマシンでキーボード/マウス共有機能などが追加 -
第420回
PC
Windowsプレビュー版に搭載されたsudoを試す - この連載の一覧へ