如何使用 PowerShell 远程重新启动 Windows 计算机
系统管理员经常需要远程重新启动 Windows 计算机以进行维护、更新或故障排除。 PowerShell 提供了几种有效的方法来完成此任务。本文探讨了使用 PowerShell 远程重新启动 Windows 计算机的六种有效技术,从简单的 cmdlet 到更高级的方法。
远程重启的先决条件
在尝试重新启动远程 Windows 计算机之前,请确保您已:
- 在远程计算机上具有本地管理员权限的用户帐户。
- 安装在本地计算机上的 PowerShell 或 PowerShell Core。
- Windows 远程管理 (WinRM) 已配置并允许通过远程计算机的防火墙。
- Windows Management Instrumentation (WMI) 允许通过远程计算机的防火墙。
在继续执行任何重新启动命令之前,验证远程系统是否尚未等待重新启动也很重要。
方法 1:使用重新启动计算机 Cmdlet
这Restart-Computercmdlet 是重新启动远程 Windows 计算机的最直接、最灵活的方法。
步骤一:在本地计算机上以管理员身份打开 PowerShell。
步骤2:使用以下命令重新启动单个远程计算机:
Restart-Computer -ComputerName "RemotePC" -Force
将“RemotePC”替换为要重新启动的远程计算机的实际名称或 IP 地址。
步骤3:要并行重启多台计算机,可以使用以下命令:
$ComputerArray | ForEach-Object -Parallel {
Restart-Computer -ComputerName $_ -Force
} -ThrottleLimit 3
此命令使用 PowerShell 的并行处理功能同时重新启动多台计算机,并以 3 的节流限制来控制资源使用。
方法 2:利用 Invoke-CimMethod
这Invoke-CimMethodcmdlet 使用 Windows Management Instrumentation (WMI) 重新启动远程系统。
步骤一:以管理员身份打开 PowerShell。
步骤2:执行以下命令:
Invoke-CimMethod -ComputerName "RemotePC" -ClassName 'Win32_OperatingSystem' -MethodName 'Reboot'
将“RemotePC”替换为目标计算机的名称或 IP 地址。
当使用具有特定 WMI 配置的系统时,或者当您需要在重新启动操作的同时执行其他 WMI 相关任务时,此方法特别有用。
方法 3:使用 shutdown.exe 命令
这shutdown.exe命令是一个内置的 Windows 实用程序,可用于重新启动远程计算机。
步骤一:以管理员身份打开 PowerShell。
步骤2:运行以下命令:
shutdown.exe /m \RemotePC /r /t 0
将“RemotePC”替换为您要重新启动的远程计算机的名称。
此方法需要在远程计算机上启用远程注册表服务,并且允许 WMI 通过 Windows 防火墙。
方法 4:使用 PSExec.exe
PSExec.exe 是 Sysinternals 工具包的一部分,提供与远程系统交互的独特功能。
步骤一:从 Microsoft 官方网站下载并安装 Sysinternals Suite。
步骤2:以管理员身份打开 PowerShell 并导航到包含 PSExec.exe 的目录。
步骤3:执行以下命令:
.psexec.exe -d -h \RemotePC "shutdown.exe /r /t 0 /f"
将“RemotePC”替换为目标计算机的名称。
此方法要求 SMB 服务正在运行,启用文件和打印机共享,禁用简单文件共享,并且 admin$ 管理共享在远程计算机上可用。
方法 5:通过 Invoke-Command 使用 RunDLL32.exe
该方法结合了rundll32.exe使用 PowerShell 的Invoke-Command重新启动远程系统。
步骤一:以管理员身份打开 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 }
将“RemotePC”替换为远程计算机的名称或 IP 地址。
当您需要在重新启动过程中执行其他远程操作时,这些方法非常有用。
方法 6:使用 Taskkill.exe 强制重新启动
此方法通过终止关键系统进程来强制 Windows 重新启动。
步骤一:以管理员身份打开 PowerShell。
步骤2:执行以下命令:
taskkill.exe /S \RemotePC /IM lsass.exe /F
将“RemotePC”替换为目标计算机的名称。
警告:此方法应作为最后的手段使用,因为它会强制终止关键的 Windows 进程。如果不小心使用,可能会导致数据丢失或系统不稳定。
这六种方法为系统管理员提供了一系列使用 PowerShell 远程重新启动 Windows 计算机的选项。选择最适合您的特定要求和网络配置的方法。请记住,在生产环境中使用这些命令之前,请先在受控环境中对其进行测试。
