Powershell Service – Dienst überwachen starten und Meldung per E-Mail
Windows Dienste überwachen
Zur Überwachung eines Dienstes kommt dieses Skript zum Einsatz. Zuerst wird geprüft ob der Dienst überhaupt vorhanden ist, wenn ja läuft das Skript weiter.
Ist der Dienst im Status „Stopp“ dann wird der Dienst gestartet und eine Benachrichtigung per E-Mail wird versandt.
Alle nötigen Parameter werden in eine .ini Datei eingegeben, so braucht man das Skript nicht anpassen und es schleichen sich keine Fehler ein.
Powershell Service – Dienst überwachen starten und Meldung per E-Mail
# Scripted by Jörn Walter 02.01.2017
# https://www.windows-papst.de
write-host „“
write-host „Scripted by Jörn Walter 02.01.2017“
write-host „https://www.windows-papst.de“
write-host „“
Write-Host „Lese .ini Datei ein“ -ForegroundColor Green;
Get-Content „$PSScriptRoot\service.ini“ | ForEach-Object -Begin {$settings=@{}} -Process {$store = [regex]::split($_,’=‘); if(($store[0].CompareTo(„“) -ne 0) -and ($store[0].StartsWith(„[„) -ne $True) -and ($store[0].StartsWith(„#“) -ne $True)) {$settings.Add($store[0], $store[1])}}
Write-Host „Verarbeite Parameter…“ -ForegroundColor Green;
Write-Host „“
$Param1 = $settings.Get_Item(„Service“)
$Param2 = $settings.Get_Item(„Mail“)
$Param3 = $settings.Get_Item(„MailFrom“)
$Param4 = $settings.Get_Item(„SMTP“)
$Param5 = $settings.Get_Item(„Subject“)
$Servername = $env:computername
#$Displayname = Get-Service $Param1 | select -ExpandProperty Displayname
Write-Host „Service: $Param1“ -ForegroundColor Yellow;
Write-Host „Mail: $Param2“ -ForegroundColor Yellow;
Write-Host „MailFrom: $Param3“ -ForegroundColor Yellow;
Write-Host „SMTP: $Param4“ -ForegroundColor Yellow;
Write-Host „Subject: $Param5`n“ -ForegroundColor Yellow;
if ((Get-Service | Where-Object {$_.Name -eq $Param1}).length -eq 0) {
Write-Host „Der Dienst $Param1 ist nicht vorhanden.“ -ForegroundColor Red
Send-MailMessage -From $Param3 -To $Param2 -Subject $Param5 -Body „Der zu überwachende Dienst auf Server $Servername ist nicht vorhanden“ -BodyAsHTML -SmtpServer $Param4 -encoding ([System.Text.Encoding]::UTF8)
exit}
$running = Get-Service -Name $Param1
if ($running.status -eq „Running“) {
write-host „Der $Param1 Service läuft doch 😉 …“
exit
} else {
Start-Service -Name $Param1 }
write-host „Der $Param1 Service wurde automatisiert nach gestartet“
Send-MailMessage -From $Param3 -To $Param2 -Subject $Param5 -Body „Der $Param1 Service wurde automatisiert nach gestartet“ -BodyAsHTML -SmtpServer $Param4 -encoding ([System.Text.Encoding]::UTF8)
.ini Datei:
[Param1] Service=8Man-Service
[Param2] Mail=joern@ndsedv
[Param3] MailFrom=service@ndsedv.de
[Param4]
SMTP=172.18.32.44
[Param5] Subject=Service-Überwachung
Skript Service Starter – Der Windows Papst.zip
Powershell Service – Dienst überwachen und Meldung per E-Mail.pdf

