如何使用PowerShell远程重新启动Windows计算机

系统管理员通常需要远程重新启动Windows计算机以进行维护,更新或故障排除。 PowerShell提供了几种有效的方法来完成此任务。本文探讨了使用PowerShell远程重新启动Windows计算机的六种有效技术,从简单的CMDLET到更高级的方法。

远程重新启动的先决条件

在尝试重新启动远程Windows计算机之前,请确保您有:

  • 远程计算机上具有本地管理员特权的用户帐户。
  • PowerShell或PowerShell核心安装在本地机器上。
  • Windows Remote Management(WINRM)通过远程计算机的防火墙配置并允许。
  • Windows Management仪器(WMI)允许通过远程计算机的防火墙。

在进行任何重新启动命令之前,验证远程系统尚未等待重新启动也至关重要。

方法1:使用重新启动计算机CMDLET

Restart-ComputerCMDLET是重新启动远程Windows计算机的最直接,最灵活的方法。

步骤1:在您的本地计算机上打开PowerShell作为管理员。

步骤2:使用以下命令重新启动一台远程计算机:

Restart-Computer -ComputerName "RemotePC" -Force

用要重新启动的远程计算机的实际名称或IP地址替换“ emerotepc”。

步骤3:要并行重新启动多台计算机,您可以使用以下命令:

$ComputerArray | ForEach-Object -Parallel {
    Restart-Computer -ComputerName $_ -Force
} -ThrottleLimit 3

该命令使用PowerShell的并行处理功能同时重新启动多台计算机,油门限制为3来控制资源使用情况。

方法2:利用Invoke-Cimmethod

Invoke-CimMethodCMDLET使用Windows Management仪器(WMI)重新启动远程系统。

步骤1:打开PowerShell作为管理员。

步骤2:执行以下命令:

Invoke-CimMethod -ComputerName "RemotePC" -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'

用目标计算机的名称或IP地址替换“ remotepc”。

当使用具有特定WMI配置的系统时,或者需要在重新启动操作旁边执行其他与WMI相关的任务时,此方法特别有用。

方法3:使用shutdown.exe命令

shutdown.exe命令是一个内置的Windows实用程序,可用于重新启动远程计算机。

了解更多:

步骤1:打开PowerShell作为管理员。

步骤2:运行以下命令:

shutdown.exe /m \RemotePC /r /t 0

用要重新启动的远程计算机的名称替换“ emerotepc”。

此方法要求在远程计算机上启用远程注册表服务,并且可以通过Windows防火墙允许使用WMI。

方法4:雇用psexec.exe

PSEXEC.EXE是Sysinternals工具包的一部分,并提供了与远程系统进行交互的独特功能。

步骤1:从Microsoft官方网站下载并安装Sysinternals Suite。

步骤2:打开PowerShell作为管理员,并导航到包含psexec.exe的目录。

步骤3:执行以下命令:

.psexec.exe -d -h \RemotePC "shutdown.exe /r /t 0 /f"

用目标计算机的名称替换“远程EPEPC”。

此方法要求启用SMB服务运行,文件和打印机共享,可以禁用简单的文件共享以及在远程计算机上可用的管理$管理共享。

方法5:使用rundll32.exe通过invoke-command

此方法结合在一起rundll32.exe与Powershell的Invoke-Command重新启动远程系统。

步骤1:打开PowerShell作为管理员。

步骤2:运行以下命令之一:

方法5a:

Invoke-Command -ComputerName "RemotePC" -ScriptBlock { & rundll32.exe user.exe,ExitWindowsExec }

方法5b:

Invoke-Command -ComputerName "RemotePC" -ScriptBlock { & rundll32.exe shell32.dll,SHExitWindowsEx 2 }

用远程计算机的名称或IP地址替换“ emerotepc”。

当您需要与重新启动过程一起执行其他远程操作时,这些方法很有用。

方法6:强迫使用Taskkill.exe重新启动

该方法通过终止关键系统过程来迫使Windows重新启动。

步骤1:打开PowerShell作为管理员。

步骤2:执行以下命令:

taskkill.exe /S \RemotePC /IM lsass.exe /F

用目标计算机的名称替换“远程EPEPC”。

警告:该方法应用作最后的手段,因为它强行终止了关键的窗口过程。如果不仔细使用,可能会导致数据丢失或系统不稳定。

这六种方法为系统管理员提供了一系列用于使用PowerShell远程重新启动Windows计算机的选项。选择最适合您的特定要求和网络配置的方法。请记住在受控环境中测试这些命令,然后再在生产环境中使用它们。