如何使用 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 計算機的選項。選擇最適合您的特定要求和網絡配置的方法。請記住,在生產環境中使用這些命令之前,請先在受控環境中對其進行測試。
