如何使用PowerShell重启远程系统?
要重启远程计算机,您需要使用由计算机名提供的 **Restart-Computer** 命令。例如:
Restart-Computer -ComputerName Test1-Win2k12
上述命令将自动重启计算机 **Test1-Win2k12**,如果您有多台远程计算机需要重启,您可以用逗号 (,) 分隔提供多台计算机。例如:
Restart-Computer -ComputerName Test1-Win2k12, Test2-Win2k12
在上例中,重启信号将同时发送到两台计算机。
![]()
您也可以使用管道来重启远程计算机。例如:
"Test1-Win2k12","Test2-Win2k12" | Restart-Computer -Verbose
或者
(Get-Content C:\Servers.txt) | Restart-Computer -Verbose
一些服务器依赖于其他服务器,因此主服务器需要先重启。例如,AD 和 Exchange 服务器。如果您在同一命令行中指定这两台服务器,则两台服务器将同时重启,而这并非我们所需。为了解决这个问题,您需要一次只传递一台服务器,编写一些服务器重启后检查清单的步骤,然后转到下一台服务器。您可以将服务器添加到数组或文本文件中,然后通过 foreach 循环传递单个值,以及重启后检查清单的步骤,然后转到下一台服务器。
人们经常将 **-Wait** 参数与 Restart-Computer cmdlet 混淆,**-Wait** 参数将在一台服务器的重启后检查清单完成后再重启下一台服务器,但 **-Wait** 参数仅对每台指定的计算机执行三个主要的检查清单,例如 **WinRM、WMI** 和 **PowerShell** 连接检查,但在服务器启动后它无法阻止服务器重启的执行。
**Restart-Computer** 向所有计算机发送重启命令,**-Wait** 参数对每台计算机执行指定的测试,即使远程计算机检查失败,服务器也会重启。
当有人登录到远程服务器时,PowerShell 无法重启远程服务器并抛出以下错误消息。
PS C:\Users\Administrator> Restart-Computer test1-win2k12 –Verbose
VERBOSE: Performing the operation "Enable the Remote shutdown access rights and restart the computer." on target "test1-win2k12". Restart-Computer : Failed to restart the computer test1-win2k12 with the following error message: The system shutdown cannot be initiated because there are other users logged on to thecomputer. At line:1 char:1+ Restart-Computer test1-win2k12 -Verbose+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (test1-win2k12:String) [Restart- Computer], InvalidOperationException + FullyQualifiedErrorId : RestartcomputerFailed,Microsoft.PowerShell.Commands.RestartComputerCommand
要强制重启计算机,您需要使用 **-Force 参数**。
Restart-Computer Test1-Win2k12 -Force
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP