如何在 PowerShell 中的 Restart-Computer cmdlet 中使用 –Wait 引數?


當我們對遠端計算機名稱使用 **Restart-Computer** 命令時,PowerShell 會重啟指定的遠端計算機,而不會檢查或驗證伺服器是否已啟動。 **-Wait** 引數滿足了這一需求。每當指定 **-Wait** 引數時,PowerShell 在計算機重啟時會對遠端計算機執行以下 3 項檢查。這可以在 PowerShell 控制檯的進度條中看到。

  • **PowerShell** - 檢查計算機是否可以在遠端機器上執行 PowerShell 命令。
  • **WMI** - 使用 Win32_ComputerSystem 命令對遠端計算機執行 WMI 查詢。
  • **WINRM** - 使用 WS-Management 實用程式檢查遠端伺服器 WINRM 連線。

當您透過指定 **-Wait** 命令使用 **Restart-Computer** cmdlet 重啟兩臺或多臺計算機時,PowerShell 會同時向所有計算機發出重啟命令,但 **-Wait** 命令的檢查會在所有計算機上分別進行。

寫在 **Reboot-Computer** 之後且與 **-Wait** 引數一起指定的命令將在 **-Wait** 引數檢查完成後按順序執行。但是,如果任何檢查失敗會怎樣?

例如,假設伺服器 **Test1-Win2k12** 上未執行 **WINRM** 服務,則伺服器將重新啟動並啟動,但等待命令會等待更長時間,有時甚至永遠等待,直到遠端計算機上的 WINRM 啟動。如果服務狀態為自動,則該服務將自動啟動,但如果已停用且為手動,則檢查將保持較長時間,直到手動終止。

如果您想使用 **–Wait** 引數並希望進行特定檢查,則可以將其與 **–For** 引數一起使用,如果希望在時間限制內完成驗證,則指定 **–Timeout** 引數。

更新於: 2020-07-24

2K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.