Home / Server / Windows Server / How to Safely Restart Windows Server

How to Safely Restart Windows Server

Restarting a Windows Server is not the same as restarting a PC. Other users and services depend on it, databases need to close cleanly, and a forced restart at the wrong time can cause data corruption or leave services in a bad state. Here is how to restart a server safely and what to do before you do it.

Before You Restart

Always check these first:

  • Are users logged in? Run query session in Command Prompt or check Task Manager → Users. Warn logged-in users before restarting.
  • Are there active services to stop first? Databases (SQL Server, MySQL), web servers (IIS), backup jobs, and replication services should be stopped cleanly before a restart rather than relying on the OS to shut them down under time pressure.
  • Is a backup running? Check your backup software. Restarting mid-backup will abort it — either wait or cancel and reschedule.
  • Is it a critical window? Avoid restarting at peak business hours unless you have to. Schedule maintenance reboots for off-peak times.
  • Do you have out-of-band access? If the server does not come back up correctly, you will need iDRAC, iLO, or a physical console to diagnose and recover it. Confirm out-of-band access is working before the restart.

Restarting via the GUI

  1. Click Start → Power → Restart
  2. Windows will prompt for a reason (on Server editions) — select the appropriate option (e.g. Operating System: Reconfiguration or Planned)
  3. Add a comment if your organisation requires it for change tracking
  4. Click Continue

Windows will warn logged-in users and attempt to close services gracefully before restarting.

Restarting via Command Prompt or PowerShell

Useful for scheduled restarts or when the GUI is slow:

# Immediate restart
shutdown /r /t 0

# Restart with a 5-minute warning
shutdown /r /t 300 /c "Server will restart in 5 minutes for scheduled maintenance"

# Cancel a pending restart
shutdown /a

The /t parameter sets the delay in seconds before the restart executes. Users with active sessions will see the countdown.

Restarting a Remote Server with PowerShell

# Restart a remote server
Restart-Computer -ComputerName SERVERNAME -Force

# Restart with a 60-second wait, then confirm it comes back
Restart-Computer -ComputerName SERVERNAME -Wait -For WinRM -Timeout 300 -Delay 10

The -Wait parameter makes PowerShell wait until the server responds before returning — useful in scripts where you need to continue working after the server is back up.

Restarting from Server Manager

In Server Manager, right-click the server in the left panel (or under Local Server) and select Restart Server. This works for both local and remote servers that are registered in Server Manager.

After the Restart — What to Check

Once the server is back up, verify it came back correctly:

  1. Services: check that critical services started — open Services.msc or run Get-Service | Where-Object {$_.StartType -eq 'Automatic' -and $_.Status -ne 'Running'} in PowerShell to find any automatic services that failed to start
  2. Event Viewer: check the System log for any errors at startup — Event ID 7034/7036 indicates services that failed
  3. Applications: verify your key applications are responding (web server, database, line-of-business applications)
  4. Network connectivity: ping the server and confirm it responds. Check that all NICs are back up.
  5. Uptime confirmation: run (Get-Date) - (gcim Win32_OperatingSystem).LastBootUpTime in PowerShell to confirm the restart time matches what you expected

If the Server Doesn’t Come Back

If the server does not respond after a restart:

  • Check iDRAC/iLO/IPMI for the current status, error LEDs, and console output
  • Check if it is stuck on a Windows Update installation (common after patch Tuesday reboots)
  • Check if it is waiting for a CHKDSK scan on a dirty volume
  • Physical console access will show what the server is displaying during boot

Sign Up For Daily Newsletter

Stay updated with our weekly newsletter. Subscribe now to never miss an update!

[mc4wp_form]

Leave a Reply

Your email address will not be published. Required fields are marked *