管理しているすべてのワークステーションでMicrosoftSystem Center EndpointProtectionを使用しています。 3つの主要なプラットフォームすべてについて、最後に更新され、最後にスキャンされた日時をレポートするのは面倒です。システムログを解析することで、MacとLinuxの日付を取得できましたが、Windowsは非常にわかりにくいものでした。
GUIで日付と時刻を確認できますが、数十台のコンピューターで自動レポートを実行するのは現実的ではありません。ある種のスクリプトを使用してこのデータを出力する方法(できればPowerShellを使用しますが、何でも機能させることができます)を知っている人はいますか?
さて、ログから最新の更新日を抽出するために、次のPowerShellスクリプトを作成しました。 SCEPのログ機能に「正常に」タイプミスがあるため、以下のコードにもタイプミスがあることに気付いた場合は、検索しているログのタイプミスと一致します。
$a=Select-String -Pattern "Update completed succesfully" -Path C:\Windows\Temp\MpCmdRun.log | Foreach {($_ -split ':')[2]}
$lineNumber = $($a | measure -Maximum).Maximum + 1
$lastUpdate = Get-Content -Path C:\Windows\Temp\MpCmdRun.log | Select-Object -Index $lineNumber | Foreach {($_ -split ':\s')[2]}
$lastUpdate = $lastUpdate.Replace("$([char]8206)","")
Write-Host "scep_last_update=$lastUpdate"
さて、これによると Forefront Enterprise ProtectionのTechnetページ (これはSCEPと同じ製品であり、Security Essentialsなどと同じ製品です)、次のログの場所が存在します。探している情報についてPowerShellで解析できる製品:
%allusersprofile%\Microsoft\Microsoft Antimalware\Support
%allusersprofile%\Microsoft\Microsoft Security Client\Support
%windir%\WindowsUpdate.log
%windir%\CCM\Logs\EndpointProtectionagent.log
%windir%\temp\MpCmdRun.log
%windir%\temp\MpSigStub.log
また、SCEPのネイティブコマンドレットに出くわしました。これは、Get-Command -Module MpProvider
でリストできますが、動作しません。Update-Help
を実行したり、Microsoftサイトでそれらに関する情報を見つけることができませんでした。 ...だから私はあきらめました。運が良ければ、WindowsDefenderのコマンドレットと基本的に同じように見えます。