Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Windows Dienst überwachen und Mail verschicken, wenn Dienst beendet

$
0
0

Hallo Zusammen,

ich versuche ein Skript zu schreiben, das jede Minute überprüft, ob ein Dienst läuft. Wenn dieser nicht gestartet ist, soll eine E-Mail verschickt werden. Ich habe folgenden Skript getestet, funktioniert aber nicht 100%ig:

$servicename="PeerDistSvc" #Dienstname
$timespan = New-Object System.TimeSpan(0,1,0) #Stunden,Minuten,Sekunden
$scope = New-Object System.Management.ManagementScope("\\.\root\cimV2")
$query = New-Object System.Management.WQLEventQuery ("__InstanceModificationEvent",$timespan, "TargetInstance ISA 'Win32_service'" )
$watcher = New-Object System.Management.ManagementEventWatcher($scope,$query)


do
    {
        $b = $watcher.WaitForNextEvent()

        $b.TargetInstance.Name
        $b.TargetInstance.caption     # Eigenschaftenn der WMI-Klasse: win32_service
        if ($(get-service -name $servicename).status -eq "Stopped") {
          start-service -name $servicename

		  Send-MailMessage -smtpServer server fqdn -From admin@ab.loc -To user@ab.loc -Subject 'Dienst auf Server XX-01 unerwartet beendet. Dienst wurde neugestartet' -Body "Body content"
        }

    }
while ($a -ne 1)

Danke
edstylo



Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>