To perform certain customized functions, scripts can be run when Windows Operating System starts or shuts down. The method to execute a script at startup or shutdown varies with different versions. Here’s how to execute scripts at shutdown and startup.
Note: This trick works in Windows XP, Vista and Windows 7 and recent versions, but the method varies depending on your edition.
How to execute a script for professional or full editions of Windows?
Start the policy editor of the local group: Start Menu > Run > Type gpedit.msc
- Under Vista or Windows 10 you can type the command in the search bar of the start menu or press Windows key + R
- Go to Computer Configuration > Windows Settings > Scripts (Startup/Shutdown)
- Depending on what you want, double click on Start or Stop system
- Click Add > Browse and select the script you want to add.
How to execute a script for all editions?
These steps involve modifying the registry. It is therefore recommended to make a backup before proceeding.
- Open notepad and copy the code below:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup] [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0] "GPO-ID"="LocalGPO" "SOM-ID"="Local" "FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine" "DisplayName"="Stratégie de groupe locale" "GPOName"="Stratégie de groupe locale" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Shutdown\0] "GPO-ID"="LocalGPO" "SOM-ID"="Local" "FileSysPath"="C:\\Windows\\System32\\GroupPolicy\\Machine" "DisplayName"="Stratégie de groupe locale" "GPOName"="Stratégie de groupe locale" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0] "Script"="C:\\script1.bat" "Parameters"="" "ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
Once you understand the code, you can adapt it to suit your needs by changing some of the variables.
- C:\\script.bat represents the path to your script on the hard disk.
- 0 represents the number of the script in case you have several scripts to run.
- Startup is the time of execution of the script.
It is possible to add multiple scripts:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\State\Machine\Scripts\Startup\0\0] "Script"="C:\\script1.bat" "Parameters"="" "ExecTime"=hex(b):00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
It is also possible to specify parameters for the execution of this script by changing the Parameters field.
Finally, save this text file:
- Go to File > Save.
- Give it a name ending with .reg.
- Select All files in the list box File Type.
- Save the file to the desired location and double click on this file.
Do you need more help with Windows? Check out our forum!
В Windows доступно несколько команд, которые позволяют выключить или перезагрузить локальный или удаленный компьютер. В этой статье мы рассмотрим, как использовать команду shutdown и PowerShell командлеты Restart-Computer и Stop-Computer для выключения/перезагрузки Windows.
Содержание:
- Использование команды shutdown в Windows
- Перезагрузка удаленных компьютеров командой shutdown
- Перезагрузка и выключение Windows с помощью PowerShell
Использование команды shutdown в Windows
Утилита командной строки shutdown является встроенной командой Windows, которая позволяет перезагрузить, выключить компьютер, перевести его в спящий режим или завершить сеанс пользователя. В этой инструкции мы покажем основные примеры использования команды shutdown в Windows (все рассмотренные команды запускаются в окне Выполнить — Win+R ->, в командной строке cmd.exe или в консоли PowerShell).
Команда shutdown имеет следующий синтаксис:
shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\компьютер][/t xxx][/d [p|u]xx:yy [/c "комментарий"]]
Как вы видите, у команды довольно много опций, а также есть возможность выключить/ перезагрузить удаленный компьютере.
Выключение Windows командой Shutdown
Для выключения ОС Windows и компьютера необходимо использовать команду shutdown с ключом /s.
shutdown /s
Перезагрузка Windows
Чтобы перезагрузить компьютер, необходимо добавить параметр /r. После выполнения этой команды Windows корректно перезагрузится.
shutdown /r
Завершение сеанса пользователя
Чтобы завершить текущую сессию пользователя (logout), нужно выполнить команду:
shutdown /l
Эта команда аналогично выполнению команды logoff.
Перевод компьютера в режим гибернации
Для перевода компьютер в режим гибернации (в этом режиме все содержимое памяти записывается в файл hyberfil.sys на диск и компьютер переходит в спящий режим с пониженным электропотреблением), выполните команду:
shutdown /h
Перезагрузка компьютера с сообщением пользователям
Вы можете предупредить всех пользователей Windows о предстоящем выключении / перезагрузки компьютера или сервера, отправив сообщение во все активные сессии (как правило эта возможность используется на терминальных RDS серверах, за которыми одновременно работают несколько пользователей, каждый в своей собственной RDP сессии).
shutdown /r /c “Этот сервер будет перезагружен через 60 секунд.”
Отложенное выключение / перезагрузка компьютера
Можно выключить или перезагрузить компьютер с определенной задержкой (по таймеру). С помощью опции /t можно указать интервал времени (в секундах), через который ПК/сервер будет перезагружен или выключен. Тем самым вы можете предоставить пользователям дополнительное время для того, чтобы успеть сохранить открытые файлы и корректно закрыть приложения. Эту опцию удобно использовать совместно с отправкой сообщения. В этом примере мы указываем, что Windows будет выключена через 10 минут (600 секунд) и информируем пользователей сообщением.
shutdown /s /t 600 /c "Сервер будет выключен через 10 минут. Сохраните свои документы!"
Пользователю будет выдано предупреждение о запланированном выключении: Ваш сеанс будет завершен.
Если задержка очень длительная, например, 100 минут (6000 секунд), то вместо предупреждающего окна появляется всплывающее сообщение в нижнем правом углу экрана: «Ваш сеанс будет завершен. Работа Windows будет завершена через 100 мин».
Отмена выключения / перезагрузки компьютера
После запуска команды выключения или перезагрузки Windows, по умолчанию утилита shutdown ожидает 60 секунд, не выполняя никаких действия. Администратор может отменить перезагрузку или выключение устройства, если в течении этого времени успеет выполнить команду:
shutdown /a
После отмены выключения появится всплывающее сообщение в нижнем правом углу экрана: «Выход из системы отменен. Запланировано завершение работы отменено».
Перезагрузить Windows немедленно
Чтобы выключить или перезагрузить компьютер немедленно, не ожидая стандартные 60 секунд, нужно указать значение 0 для параметра /t. Например, для немедленной перезагрузки компьютера:
shutdown /r /t 0
Очень важный ключ /f. Я использую его практически всегда при выключении или перезагрузки серверов Windows. Данный атрибут обеспечивает принудительное завершение всех запущенных программ и процессов, не ожидая подтверждения от пользователя (не будем же мы ждать подтверждения закрытия программ от всех пользователей на терминальном сервере, его можно просто не дождаться).
Следующая команда выполнит перезагрузку компьютера с автоматическим запуском всех зарегистрированных приложений после перезагрузки (имеются в виду приложения, зарегистрированные в системе с использованием функции API RegisterApplicationRestart).
shutdown /g
Ярлык для перезагрузки компьютера
Для удобства пользователей вы можете создать на рабочем столе ярлыки для выключения или перезагрузки компьютера с нужными настройками. Такой ярлык может быть полезен для выполнения перезагрузки из RDP сессии, когда отсутствуют кнопки перезагрузки/завершения работы компьютера в меню Пуск.
Перезагрузка Windows в определенное время
Чтобы всегда перезагружать/выключать компьютер или сервер в определенное время, вы можете добавить команду shutdown в планировщик заданий Windows taskschd.msc.
Например, следующее задание планировщика будет ежедневно перезагружать компьютер ночью в 0:00.
Либо вы можете создать новое задание планировщика из 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
Перезагрузка удаленных компьютеров командой shutdown
Вы можете перезагрузить удаленный компьютер по сети, для этого у вас должен быть к нему сетевой доступ, а учетная запись, из-под которой запускается команда shutdown должна входить в группу локальных администраторов на удаленном компьютере (сервере):
shutdown /r /t 120 /m \\192.168.1.100
Если все указанные условия выполняются, но при выполнении команды shutdown появляется ошибка ”Отказано в доступе (5)”, на удаленном компьютере нужно разрешить удаленный доступ к административным ресурсам (C$, ADMIN$), изменив значение параметра LocalAccountTokenFilterPolicy на 1.
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f
Если для подключения к удаленному компьютеру нужно указать учетные данные пользователя, можно использовать команду:
net use \\192.168.31.10 /u:corp\username
shutdown /s /t 60 /f /m \\192.168.31.10
Если вам необходимо удаленно перезагрузить множество компьютеров, их список можно сохранить в текстовый файл и запустить удаленную перезагрузку всех компьютеров с помощью такого PowerShell скрипта:
$sh_msg = "Ваш компьютер будет автоматически перезагружен через 10 минут. Сохраните свои файлы и закройте запущенные программы"
$sh_delay = 600 # секунд
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
{
Invoke-Expression "SHUTDOWN.exe /m \\$comp /r /c '$sh_msg' /t $sh_delay"
}
Графический интерфейс команды shutdown
Для тех, кому не комфортно работать в командной строке, есть графический интерфейс для команды shutdown, чтобы его вызвать, наберите:
shutdown /i
Как вы видите, в диалоге удаленного завершения работы вы можете добавить несколько компьютеров, которые нужно перезагрузить/выключить, указать текст уведомления и задать причину выключения для сохранения в журнале Windows.
Перезагрузка и выключение Windows с помощью PowerShell
В PowerShell есть две команды для выключения и перезагрузки компьютера: Restart-Computer и Stop-Computer. Обе команды позволяют выключить или перезагрузить локальный или удаленный компьютер по сети.
Для перезагрузки Windows выполните:
Restart-Computer -force
Чтобы выключить компьютер:
Stop-Computer
По умолчанию перезагрузка начнется через 5 секунд. Можно увеличить задержку перед перезагрузкой:
Restart-Computer –delay 15
У обоих командлетов есть параметр
–ComputerName
, который позволяет задать список удаленных компьютеров.
Например, чтобы удаленно выключить два сервера Windows:
Stop-Computer -ComputerName "Server01", "Server02"
Можно указать учетные данные администратора для подключения к удаленному хосту:
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds
Для подключения к удаленным компьютерам используется WMI и DCOM (он должны быть включен и настроен). Если WMI не настроен, при запуске команды появится ошибка:
Restart-Computer : Failed to restart the computer wks-t1122h2 with the following error message: Access is denied. Exception from HRESULT: 0x80070005 (E_ACCESSDENIED).
Если на удаленном компьютере настроен WinRM (Windows Remote Management), вы можете использовать для подключения WSman вместо WMI:
Restart-Computer -ComputerName wks-t1122h2 -Protocol WSMan
Если на удаленном компьютер есть активные сессии пользователей, при запуске Restart-Computer появится ошибка:
Restart-Computer : Failed to restart the computer wks-t1122h2 with the following error message: The system shutdown cannot be initiated because there are other users logged on to the computer.
Для принудительной перезагрузки нужно добавить параметр -Force:
Restart-Computer -ComputerName wks-t1122h2 –Force
С помощью параметра -For можно перезагрузить компьютер и дождаться, когда он будет доступен. Например, вы хотите убедиться, что удаленный компьютер успешно перезагрузится и на нем стартовала служба WinRM, позволяющая подключиться к нему через WS-Management:
Restart-Computer -ComputerName wks-t1122h2 -Wait -For WinRM
Restarting computer wks-t1122h2 Verifying that the computer has been restarted.
Можно дождаться запуска службы удаленного рабочего стола (RDP) или любой другой службы Windows:
Restart-Computer -ComputerName wks-t1122h2 -Wait -For TermService
Если нужно одновременно перезагрузить несколько хостов, можно использовать возможности параллельного запуска команд в версии PowerShell 7.x.
Например, вы можете получим список Windows Server в определенном контейнере (Organizational Unit) Active Directory с помощью командлета Get-ADComputer и перезагрузить их одновременно:
$Computers = (Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"' -SearchBase "OU=Servers,DC=winitpro,DC=loc").Name
$Computers | ForEach-Object -Parallel { Restart-Computer -ComputerName $_ -Force} -ThrottleLimit 3
Skip to content
Some of us want to make a regular backup of some important files (or run some other tasks) automatically every time when we shutdown the computer. You can do so easily in Windows 7 by utilizing the shutdown script feature. Here is how :
- First of all, create the command script (or a batch file) and save it. You should write the script as a batch file though the PowerScript is also supported. For example, if you want to make a backup of all the files in C:\Project to a network drive X:, then the script would be as follows :
Copy C:\Project\*.* X:\
We save the script file as C:\MakeBackup.bat.
- Press the key combination Windows logo key + R to open the Run dialog.
- In the Run Dialog, type gpedit.msc and press Enter to open the Group Policy Editor.
- In the Group Policy Editor, open Computer Configuration → Windows Settings → Scripts (Startup/Shutdown) as shown.
- Double-click on Shutdown in the right side pane. In the window that opens up, click on the Add button.
- Browse to your script file and put in any parameter (only if it accepts parameters). Then click OK button.
- Click OK to close the Shutdown Properties window.
That’s it. Now each time you shutdown the computer, the shutdown script that you have added will run automatically before the computer shuts down. You can add more than one script if you want.
Note : If you are not able to run scripts at shutdown, then there is a workaround. Try adding scripts to run at log off. When you shutdown, the Windows first logs you off and so log off scripts also run every time you shutdown your computer. To add scripts for log off, read Run Scripts Everytime You Logoff in Windows 7.
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
Windows supports autostart functionality; the autostart on startup feature is the better known variant but there is also an option to autostart on shutdown.
Some programs add entries to the autostart list when they are installed. Programs like antivirus and security software may add entries so that they are launched as early as possible on the Windows PC.
Windows administrators may configure devices running Windows to run certain programs or scripts during shutdown as well. Examples include running a script to clear temporary folders or the browsing history on the device, backing up certain files, delaying the shutdown of the system, or adding entries to log files.
The caveats
The autostart of programs or scripts during shutdown of the system has two caveats that need to be mentioned. First, that the functionality is only found in professional or Enterprise editions of Windows and not in Home versions, and second, that the scripts or programs are run on every shutdown or restart.
The autostart entries are run each time, e.g. after installing updates that require a restart or installing a program that requires a restart to finalize the installation.
The shutdown
The shutdown of the system begins with the termination of running (user) processes and signing out of the user. System processes are shut down after that first phase, and the device is turned off or restarted in the end. Windows supports running tasks in both of the shutdown phases, and both may be configured in the Group Policy Editor.
- User Configuration > Windows Settings > Scripts (Logon/Logoff) > Logoff
- Computer Configuration > Windows Settings > Scripts (Startup/Shutdown) > Shutdown
The first policy runs scripts during user log off on the system, the second after the user has been logged out of the system.
The script’s purpose determines where you need to add it for execution on shutdown. Scripts that you configure in the user configuration run with the rights of the user. The scripts are started after the termination of running processes including those that run in the system tray or in the background.
Windows displays a blank screen usually when configured scripts are run but it is possible to run scripts with graphical user interfaces that the user may interact with. Scripts are terminated automatically unless configured to do otherwise, e.g. by using the wait command.
You may also configure a policy to display a window when scripts run so that you know what is happening. Enable the policy «Display instructions in logoff scripts as they run» under User Configuration > Administrative Templates > System > Scripts to do so.
A similar option is available for scripts that run in the second phase of shutdown. You find it under Computer Configuration > Administrative Templates > System > Scripts; it has the same name as the User Configuration policy: Display instructions in shutdown scripts as they run.
Windows gives the combined scripts 10 minutes (600 seconds) of execution time by default. You can change the interval by configuring «Specify maximum wait time for Group Policy scripts» in the same Computer Configuration policy folder. You may select a range between 0 and 32000 seconds; 0 means that scripts run for as long as they need and that Windows won’t interfere. Note that the policy affects startup and shutdown scripts.
Shutdown scripts, those run in the second phase of the shutdown process run when no user is logged in anymore. These scripts run with system rights and not user rights. Administrators need to be aware that referenced user folders in scripts use the folders of the system user.
The shutdown and logoff properties policy windows look identical. Both feature a tab that separates scripts from PowerShell scripts, options to add, edit, remove, and sort scripts, and a button to show files.
A click on show files opens a script directory on the local system:
- For Logoff scripts: C:\WINDOWS\System32\GroupPolicy\User\Scripts\Logoff
- For Shutdown scripts: C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown
You may place the scripts that you want executed in those folders; it is no requirement though and you can pick any folder on the system that is accessible during shutdown for storage. It may nevertheless be a good idea to place scripts in these folders for organizational purposes.
Summary
Article Name
Back to Basics: Windows Shutdown Autostart explained
Description
Windows supports autostart functionality; the autostart on startup feature is the better known variant but there is also an option to autostart on shutdown.
Author
Martin Brinkmann
Publisher
Ghacks Technology News
Logo
Advertisement
Several commands are available in Windows that allow you to shutdown or restart a local or remote computer. In this article, we’ll look at how to use the shutdown command and the PowerShell cmdlets Restart-Computer and Stop-Computer to shutdown/restart Windows.
Contents:
- Using the Shutdown Command on Windows
- How to Shutdown or Restart a Remote Windows Computer?
- Restart or Shutdown Windows with PowerShell
Using the Shutdown Command on Windows
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 guide, we’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 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 from the command prompt
To shutdown Windows, use the shutdown command with the /s key.
shutdown /s
Reboot Windows from the CMD
To reboot your computer, use the /r parameter. After running it, Windows will be gracefully restarted.
shutdown /r
End a User Session
To end the current user session (logoff), run this command
shutdown /l
This command works in the same way as logoff.exe command.
How to hibernate Windows using the shutdown command?
To hibernate your computer, run this command:
shutdown /h
In the hibernate mode, all the contents of memory are written to the hiberfil.sys file on the local disk and the computer goes into sleep mode with reduced power consumption.
Notify logged-in users of an impending reboot or shutdown
You can notify all logged-on Windows users about the upcoming shutdown/reboot of the computer or server by sending a pop-up 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 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 a 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 notification 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 be warned about the scheduled shutdown:
You’re about to be signed out
If the delay is too long (for example, 60 minutes/3,600 seconds), a pop-up window appears in the lower right corner of the screen:
You’re about to be signed out. Your Windows will shutdown in 100 minutes.
How to stop/cancel/abort system shutdown in Windows
Windows waits 60 seconds by default without doing anything after running shutdown or reboot command. An administrator can cancel the restart or shutdown of the device by running this command during this time:
shutdown /a
After you cancel the shutdown, you’ll see the following pop-up message in the lower right corner of the screen:
Logoff is cancelled. The scheduled shutdown has been cancelled.
Restart Windows immediately
To shutdown or reboot a computer immediately without waiting for 60 seconds, specify 0 as a value of the /t parameter. For example:
shutdown /r /t 0
The /f key is very important. I use it almost always when shutting down or restarting Windows Server hosts. This attribute allows to force close all running programs and processes without waiting for confirmation from the user (we won’t wait till the users confirm closing all applications on the RDS server since we can never get it).
The next command will restart the computer and automatically run all registered apps after reboot (apps registered in the system using RegisterApplicationRestart API are meant here).
shutdown /g
Create a restart shortcut on Windows Desktop
To make it more convenient for users, you can create a desktop shortcut to restart or shutdown a computer with the required parameters. Such a 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.
How to restart Windows at a specific time (on schedule)?
If you want your computer or server to restart/shutdown at a specific time, you can add the shutdown command with the parameters to Windows Task Scheduler (taskschd.msc
).
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
How to Shutdown or Restart a Remote Windows Computer?
You can use the shutdown.exe command to reboot a remote computer. To do this, the remote computer must be accessible over the network, and the account u you are using 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, you need to allow remote access to the administrative 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 provide user credentials to connect to a remote computer, you can use the commands:
net use \\192.168.13.111 /u:corp\username
shutdown /s /t 60 /f /m \\192.168.13.111
If you need to restart multiple computers remotely, you can save the list of computers to a text file, and start 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"
}
Restart multiple computers with a Shutdowm.exe GUI
For those who don’t feel comfortable working in the command prompt, there is a graphical interface for the shutdown.exe command. To call the Remote Shutdown Dialog GUI, use the command:
shutdown /i
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 for the shutdown to be saved in the Windows event log.
Restart or Shutdown Windows with PowerShell
The following two commands are available in Windows PowerShell to shutdown and reboot the computer: Restart-Computer and Stop-Computer. Both commands allow you to shutdown or restart a local or remote computer (over the network).
To restart Windows, run:
Restart-Computer -force
To shutdown your computer:
Stop-Computer
By default, the reboot will start in 5 seconds. You can increase the delay before reboot:
Restart-Computer –Delay 60
Both cmdlets have a -ComputerName
parameter that allows you to specify a list of remote computers to perform the action on.
For example, to shutdown two Windows servers remotely:
Stop-Computer -ComputerName "mun-srv01", "mun-srv02"
You can specify administrator credentials to connect to a remote host:
$Creds = Get-Credential
Restart-Computer -ComputerName mun-srv01-Credential $Creds
WMI and DCOM are used to connect to remote computers (they must be enabled and configured). If WMI is not configured, the following error will appear when running the command:
Restart-Computer : Failed to restart the computer wks-11222 with the following error message: Access is denied. Exception from HRESULT: 0x80070005 (E_ACCESSDENIED).
If WinRM (Windows Remote Management) is enabled on the remote computer, you can use WSman instead of WMI to connect:
Restart-Computer -ComputerName wks-11222 -Protocol WSMan
If there are active user sessions on the remote computer, an error will appear:
Restart-Computer : Failed to restart the computer wks-11222 with the following error message: The system shutdown cannot be initiated because there are other users logged on to the computer.
To force a reboot, you need to add the -Force parameter:
Restart-Computer -ComputerName wks-11222 –Force
You can use the -For
option to restart your computer and wait until it becomes available. For example, you want to make sure that the remote computer reboots successfully and the WinRM service is started on it, allowing you to connect to it through WS-Management:
Restart-Computer -ComputerName wks-11222 -Wait -For WinRM
Restarting computer wks-11222 Verifying that the computer has been restarted.
You can wait for the Remote Desktop Service (RDP) or any other Windows service to start:
Restart-Computer -ComputerName wks-11222 -Wait -For TermService
If you need to restart multiple computers at the same time, you can use the parallel command execution available in PowerShell 7.x (see how to update PowerShell).
For example, you can get a list of Windows Servers hosts in a specific Active Directory container (Organizational Unit) using the Get-ADComputer cmdlet and restart them at the same time:
$Computers = (Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"' -SearchBase "OU=Servers,DC=woshub,DC=com").Name
$Computers | ForEach-Object -Parallel { Restart-Computer -ComputerName $_ -Force} -ThrottleLimit 3