Как определить наличие новой службы на сервере Windows с помощью сценария PowerShell
Нам необходимо обнаружить установку новых сервисов на наших серверах приложений. Это серверы Windows 2016 и 2019. Я решил написать и запланировать PS-скрипт, который будет запускаться два раза в день. Этот скрипт утром подсчитает количество существующих сервисов. Вечером он снова заработает. Если вечером количество служб выше, в журнале просмотра событий будет создана запись. Это будет обнаружено SCOM и сгенерировано оповещение.
Это то, что я сделал до сих пор:
$Kaizen = (Get-Service | Measure.Object).Count
$Vic = 800 #The 800 is just an arbitrary number used for testing purposes
If($Vic -gt $Kaizen)
{
Write-Eventlog -LogName "Windows Powershell" -Source 'Pwershell' -Entrytype Error
-EventId 45874 -Message "New Service detected"
}
Приведенный выше сценарий работает, но я бы предпочел не использовать статические данные, как в $Vic. Предпочтительно, чтобы сценарий фиксировал количество сервисов утром, сохранял его и повторно использовал для сравнения вечером. Во-вторых, нам нужно, чтобы сценарий включал имя или описание новой службы, обнаруженной в -Message.