Site icon Frankys Web

Quick & Dirty: Server zu einer bestimmten Uhrzeit neustarten und per Mail benachrichtigen

Hier mal wieder ein kleines Script aus der Reihe “Quick & Dirty”.  Das Script kann einen Server neustarten und schickt eine Mail mit dem Status:

#Server neustart

$servername = „SERVER01“

$to = “frank@frankysweb.de”
$from = “rebooter@frankysweb.de”
$smtpserver = „smtp.frankysweb.local“

Send-MailMessage -To $to -From $from -SmtpServer $smtpserver -Subject „Neustart für Server $servername“ -body „Der Server $servername wird jetzt neugestartet“
Restart-Computer -ComputerName $servername -Force

do {$ping = Test-Connection $servername -Count 1 -Quiet}
while ($ping -match „True“)

Send-MailMessage -To $to -From $from -SmtpServer $smtpserver -Subject „Server $servername ist offline“ -body „Der Server $servername befindet sich in der Neustartphase“

do {$ping = Test-Connection $servername -Count 1 -Quiet}
while ($ping -match „False“)

sleep 30

$servicelist = get-wmiobject win32_service -computername $servername | where {$_.Startmode -match „Auto“ -and $_.State -match „Stopped“}
foreach ($service in $servicelist)
{
$servicename = $service.name
$displayname = get-service $servicename -computername $servername
$displayname = $displayname.displayname
$displayname = [string]$displayname + „, “
$downservice += $displayname
}

Send-MailMessage -To $to -From $from -SmtpServer $smtpserver -Subject „Server $servername ist online“ -body „Der Server $servername ist neugestartet Folgende Dienste laufen nicht $downservice“

Das Script kann per Aufgabenplanung von einem anderen Server oder Rechner gestartet werden. Es schickt eine Mail wenn der Server neugestartet wird, eine Mail wenn er offline ist und eine Mail wenn er wieder erreichbar ist. Bei der letzten Mail werden auch die Dienste angezeigt die als Startart “Automatisch” eingestellt haben, aber nicht gestartet wurden.

Exit mobile version