The Shutdown.exe is a built-in Windows command line tool that allows you to reboot, shutdown, put your computer to sleep, hibernate or end a user session. In this post, I’ll show the basic examples of using the shutdown command in Windows. All commands discussed above are run in the Run dialog box —
Win+R ->, in the command prompt (cmd.exe) or in PowerShell.
The shutdown command has the following syntax:
shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]
As you can see, the command has quite a lot of options, and can be used to shutdown/restart a local or remote computer.
How to Shutdown Windows Using the Command Prompt?
To shutdown Windows, use the shutdown command with the /s key.
Reboot Windows from the CMD
In order to reboot your computer, use the /r parameter. After running it, Windows will be will gracefully restarted.
End a User Session
To end the current user session (logoff), run this command:
This command works in the same way as logoff.exe command.
How to Hibernate Windows?
To hibernate your computer, run this command:
In the hibernate mode, the whole memory contents is written to the hiberfil.sys file on the local disk and the computer is put to sleep mode thus lowering the energy consumption
How to Notify Logged-on Users Before Reboot or Shutdown?
You can notify all logged-on Windows users about the upcoming shutdown/reboot of the computer or server by sending a message to all active sessions. As a rule, this feature is used on RDS servers with several users working on them at the same time in their own RDP sessions.
shutdown /r /c “This server will be restarted in 60 seconds.”
Delayed Shutdown/Reboot of a Computer Using the Timer
You can shutdown or restart the computer with a certain delay (on timer). Using the /t option, you can specify the time span after which the computer/server will be shutdown or rebooted. Thus you can provide your users some time to save open files and close the apps correctly. It is convenient to use this option together with the notify message. In this example we inform the users that Windows will be shutdown in 10 minutes (600 seconds).
shutdown /s /t 600 /c "The server will be shutdown in 10 minutes. Save your work!"
A user will see a notification about the planned shutdown:
You’re about to be signed out
If the delay is too long, say, 100 minutes (6,000 seconds), a popup window appears in the lower right corner of the screen: You’re about to be signed out. Your Windows will shutdown in 100 minutes.
Cancel Windows Shutdown or Restart
After running Windows shutdown or reboot command, the shutdown tool waits 60 seconds by default without doing anything. An administrator can cancel the restart or shutdown of the device by running this command during this time:
After you cancel the shutdown, you’ll see the following popup window in the lower right corner of the screen: Logoff is cancelled. The scheduled shutdown has been cancelled.
Force an Immediate Restart of the Computer
To shutdown or reboot a computer immediately without waiting for 60 seconds, specify 0 as a value of the /t parameter. For example, to restart the computer immediately:
shutdown /r /t 0
The /f key is very important. I use it almost always when shutting down or restarting Windows servers. This attribute forces close all running programs and processes without user confirmation (we won’t wait till the users confirm closing all applications on the RDS server).
The next command will restart the computer and automatically run all registered apps after the restart (apps registered in the system using RegisterApplicationRestart API are meant here).
Hot to Remotely Shutdown or Restart a Windows Computers?
You can reboot a remote computer if you have the network access to it, and the account you are using to run the shutdown command must be a member of the local administrators group on the remote computer (server):
shutdown /r /t 120 /m \\192.168.1.210
If all the conditions described above are met, but when running the shutdown command the error “Access denied (5)” appears, allow the remote access to the admin shares (C$, ADMIN$) on the remote computer by changing the value of LocalAccountTokenFilterPolicy parameter to 1.
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f
If you need to restart multiple computers remotely, you can save the list of computers to a text file and run a remote reboot of all computers using a simple PowerShell script:
$sh_msg = "Your computer will be automatically restarted in 10 minutes. Save your files and close running apps"
$sh_delay = 600 # seconds
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
& 'C:\Windows\System32\SHUTDOWN.exe' "-m \\$comp -r -c $sh_msg -t $sh_delay"
Shutdown Command Graphical Interface
Those who don’t feel comfortable to work in the command prompt can use the graphical interface of the shutdown.exe command. To call the remote shutdown dialog, use the command:
As you can see, you can add multiple computers in the remote shutdown dialog to be rebooted/shutdown, specify the notification text and specify the reason of the shutdown to be saved in the Windows event log.
How to Reboot Computer Using Shortcut?
To make it more convenient to users, you can create shortcuts to restart or shutdown a computer with the required settings on the desktop. The shortcut may be useful when you need to restart the computer from the RDP session when there are no options to restart or shutdown the computer in the Start menu.
If you want your computer or server to restart/shutdown at the specific time, you can add the shutdown command with the certain parameters to Windows Task Scheduler (
For example, this Scheduler task will restart the computer daily at 12 AM.
Or you can create a new Scheduler task with PowerShell:
$Trigger= New-ScheduledTaskTrigger -At 00:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "–f –r –t 120"
Register-ScheduledTask -TaskName "RebootEvertyNight_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force