Send email alert if Reboot or shutdown a Server with Powershell


This script allows to send a status mail when a server restarts or stops. All actions are logged to C:\Logs.

Github Link : 

Exécution command line for reboot status : 
  • powershell.exe -executionpolicy ByPass -file .\ScriptName.ps1 -Option Reboot
Exécution command line for shutdown status : 
  • powershell.exe -executionpolicy ByPass -file .\ScriptName.ps1 -Option Shutdown

#Script Parameters
[ValidateSet("Reboot", "Shutdown")]

#Function create Log folder
    Function CreateLogsFolder
    If(!(Test-Path C:\Logs))
    New-Item -Force -Path "C:\Logs\" -ItemType Directory
    Write-Host "The folder "C:\Logs\" already exists !"

#Create Log Folder

#Declaration of script variables
    $Client = "Client Name"
    $Server = (Get-CimInstance -ClassName Win32_ComputerSystem).Name
    $Date = Get-Date
    $LogPath = "C:\Logs\StateServer.log"

# Define the email address to send notifications to
    $to = "YourEmailAdress"
    $to2 = "OtherEmailAdress"

If ($Option -eq "Reboot")
#Send the notification
    Write-Output "$($Date) Send alert email to $($to) and $($to2) : The server $Server has rebooted." | Tee-Object -FilePath $LogPath -Append
Send-MailMessage -To $($to;$to2) -From "SenderEmailAdress" -SmtpServer SmtpAdress -Subject "$Client - $Server - Server Reboot" -Body "The server $Server has rebooted."

If  ($Option -eq "Shutdown")
#Send the notification
    Write-Output "$($Date) Send alert email to $($to) and $($to2) : The server $Server has been shutdown." | Tee-Object -FilePath $LogPath -Append
Send-MailMessage -To $($to;$to2) -From "SenderEmailAdress" -SmtpServer SmtpAdress -Subject "$Client - $Server - Server Shutdown" -Body "The server $Server has been shutdown."


To facilitate the deployment, it is preferable to create a GPO in the following way :
  • Open Group Policy Strategy MMC
  • Select Create New GPO
  • Go to Computer Configuration \ Strategy \ Windows Parameters \ Script (Restart / Shutdown)
  • In the Scripts Powershell Tab, add your script with this paramters : 
    • "-Option Reboot"

  • Repeat all actions for Shutdown script and replace the paramters with "-Option Shutdown"


When the server restarts, an alert email will be sent to you :

For Shutdown alert

Popular posts from this blog

How to reset computer in OOBE mode

How to implement Applocker with Microsoft Intune

Windows Autopilot error code 801c03ed