Monitoring mit PowerShell

ConnectWise Automate bietet mehr als 15 verschiedene Typen von Agent-basierten Remote Monitors an. Einer dieser Typen, "External EXE Check", erlaubt die Übergabe von PowerShell-Befehlen:

Folgende Syntax wird für das Feld "Executable / Arguments" erwartet:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe –ExecutionPolicy ByPass -command "& {POWERSHELL-CODE}"
Das folgende Beispiel gibt die Anzahl der Fehler im Application-Eventlog innerhalb der letzten Stunde zurück:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe –ExecutionPolicy ByPass -command "& {$EventCount=0; $DateAfter = (Get-Date).AddHours(-1); Get-EventLog -LogName "Application" -EntryType "Error" -After $DateAfter | foreach {$_;$EventCount++} | Out-Null; $EventCount;}"
Das folgende Beispiel gibt "Fehler" zurück, wenn ein Exchange-Zertifikat innerhalb der nächsten 31 Tage ausläuft, andernfalls "OK":
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe –ExecutionPolicy ByPass -command "& {Add-pssnapin -Name Microsoft.Exchange.Management.PowerShell.E2010 -ErrorAction SilentlyContinue; $DaysToExpiration = '31'; $expirationDate = (Get-Date).AddDays($DaysToExpiration);[array]$exchCerts = Get-ExchangeCertificate | Where {($_.Services -match 'IIS') -and ($_.NotAfter -lt $expirationDate)}; if ($exchCerts.Count -gt 0) {Write-Host 'Fehler'}else{Write-Host 'OK'}}"