如何使用 PowerShell 遠程重新啟動 Windows 計算機

Jacki

系統管理員經常需要遠程重新啟動 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。

建議閱讀:如何遠程關閉或重新啟動 Windows PC

步驟2:執行以下命令:

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

將“RemotePC”替換為目標計算機的名稱。

警告:此方法應作為最後的手段使用,因為它會強制終止關鍵的 Windows 進程。如果不小心使用,可能會導致數據丟失或系統不穩定。

這六種方法為系統管理員提供了一系列使用 PowerShell 遠程重新啟動 Windows 計算機的選項。選擇最適合您的特定要求和網絡配置的方法。請記住,在生產環境中使用這些命令之前,請先在受控環境中對其進行測試。