Site icon Franky's Web

Quick & Dirty: Restart server at a specific time and notify by e-mail

Here is another small script from the "Quick & Dirty" series. The script can restart a server and sends a mail with the status:

#Server restart

$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“

The script can be started from another server or computer via task scheduling. It sends a mail when the server is restarted, a mail when it is offline and a mail when it is available again. The last mail also shows the services that have "Automatic" set as the start type but have not been started.

Exit mobile version