Restart-Computer
重新啟動本地及遠端電腦的作業系統。
語法
DefaultSet (預設值)
Restart-Computer
[[-ComputerName] <String[]>]
[-WsmanAuthentication <String>]
[-Credential]<PSCredential>]
[-Force]
[-Wait]
[-Timeout <Int32>]
[-For <WaitForServiceTypes>]
[-Delay <Int16>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
指令 Restart-Computer 檔會重新啟動本地及遠端電腦的作業系統。
你可以用參數 Restart-Computer 來執行重啟操作、指定認證等級和備用憑證、限制同時執行的操作,以及強制立即重新啟動。
從 Windows PowerShell 3.0 開始,你可以等重啟完成後再執行下一個指令。 指定等待逾時與查詢間隔,並等待重新啟動的電腦上有特定服務可用。 此功能使其在 Restart-Computer 腳本和函式中實用。
在 PowerShell 7.1 中, Restart-Computer 新增了 Linux 和 macOS 版本。 非Windows平台僅有 WhatIf、Confirm 以及 CommonParameters 參數。 指令檔只是呼叫原生指令 /sbin/shutdown。
範例
範例 1:重新啟動本地電腦
Restart-Computer 重新啟動本地電腦。
Restart-Computer
範例 2:重新啟動多台電腦
Restart-Computer 可以重新啟動遠端和本地電腦。
ComputerName 參數接受一組電腦名稱陣列。
Restart-Computer -ComputerName Server01, Server02, localhost
範例 3:從文字檔取得電腦名稱
Restart-Computer 從文字檔取得電腦名稱清單,然後重新啟動電腦。
ComputerName 參數未被指定。 但因為它是第一個位置參數,它會接受從文字檔中傳送到管線的電腦名稱。
Get-Content -Path C:\Domain01.txt | Restart-Computer
Get-Content 使用 Path 參數從文字檔取得電腦名稱清單, Domain01.txt。 電腦名稱會被送往管道。
Restart-Computer 重新啟動每台電腦。
範例 4:強制重啟文字檔中列出的電腦
此範例強制檔案中列出 Domain01.txt 的電腦立即重啟。 文字檔中的電腦名稱會儲存在變數中。
力場參數會強制立即重新啟動。
$Names = Get-Content -Path C:\Domain01.txt
$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds -Force
Get-Content 使用 Path 參數從文字檔取得電腦名稱清單, Domain01.txt。 電腦名稱儲存在變數 $Names中。
Get-Credential 會提示你輸入使用者名稱和密碼,並將這些數值儲存在變數 $Creds中。
Restart-Computer 使用 ComputerName 與 Credential 參數及其變數。
力場參數會立即重新啟動每台電腦。
範例 6:重啟遠端電腦並等待 PowerShell
Restart-Computer 重新啟動遠端電腦後,等待最多 5 分鐘(300 秒)直到重新啟動的電腦上可用 PowerShell 才會繼續。
Restart-Computer -ComputerName Server01 -Wait -For PowerShell -Timeout 300 -Delay 2
Restart-Computer 使用 ComputerName 參數來指定 Server01。
等待參數會等待重新啟動結束。
For 指定 PowerShell 可以在遠端電腦上執行指令。
逾時參數指定等待五分鐘。
Delay 參數每兩秒查詢一次遠端電腦,以判斷是否重新啟動。
範例 7:使用 WsmanAuthentication 重新啟動電腦
Restart-Computer 使用 WsmanAuthentication 機制重新啟動遠端電腦。
Kerberos 認證會判定目前使用者是否有權限重新啟動遠端電腦。 欲了解更多資訊,請參閱 AuthenticationMechanism。
Restart-Computer -ComputerName Server01 -WsmanAuthentication Kerberos
Restart-Computer 使用 ComputerName 參數來指定遠端電腦 Server01。
WsmanAuthentication 參數指定認證方法為 Kerberos。
參數
-ComputerName
指定一個電腦名稱或一個逗號分隔的電腦名稱陣列。
Restart-Computer 接受管線或變數中的 ComputerName 物件。
輸入 NetBIOS 名稱、IP 位址,或遠端電腦的完整限定網域名稱。 要指定本地電腦,請輸入電腦名稱、點 .或 localhost。
此參數不依賴 PowerShell 遠端處理。 即使您的電腦未設定為執行遠端命令,您也可以使用 ComputerName 參數。
如果沒有指定 ComputerName 參數,請 Restart-Computer 重新啟動本地電腦。
此參數僅在 Windows 平台上提供。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 中國, __SERVER, Server, IP位址 |
參數集
(All)
| Position: | 0 |
| 必要: | False |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Confirm
在執行 Restart-Computer之前,提示您進行確認。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 參見 |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Credential
指定具有執行此動作許可權的用戶帳戶。 預設值為目前的使用者。
輸入使用者名稱,例如 User01 或 Domain01\User01,或輸入 Cmdlet 所產生的 Get-Credential 物件。 如果您輸入使用者名稱,系統會提示您輸入密碼。
認證會儲存在 PSCredential 物件中,密碼會儲存為 secureString 。
Note
如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?。
此參數僅在 Windows 平台上提供。
參數屬性
| 類型: | PSCredential |
| 預設值: | Current user |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Delay
指定查詢的頻率,單位為秒。 PowerShell 會查詢 For 參數所指定的服務,以判斷該服務在電腦重新啟動後是否可用。
此參數僅與 Wait 和 For 參數同時有效。
此參數是在 Windows PowerShell 3.0 中引進的。
如果沒有指定 延遲 參數,則 Restart-Computer 會使用五秒的延遲。
此參數僅在 Windows 平台上提供。
參數屬性
| 類型: | Int16 |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-For
指定 PowerShell 在電腦重新啟動後等待指定服務或功能可用時的行為。 此參數僅適用於 等待 參數。
此參數可接受的值為:
- 預設:等待PowerShell重新啟動。
- PowerShell:可以在電腦的遠端 PowerShell 會話中執行指令。
- WMI:收到電腦 Win32_ComputerSystem 查詢的回覆。
- WinRM:可透過 WS-Management 建立遠端連線電腦。
此參數是在 Windows PowerShell 3.0 中引進的。 此參數僅在 Windows 平台上提供。
參數屬性
| 類型: | WaitForServiceTypes |
| 預設值: | None |
| 接受的值: | Wmi, WinRM, PowerShell |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Force
強制電腦立即重啟。
此參數僅在 Windows 平台上提供。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | f |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Timeout
指定等待時間,以秒數計。 逾時結束後, Restart-Computer 即使電腦沒有重新啟動,也會回到命令提示字元。
逾時參數僅適用於等待參數。 逾時 會覆蓋 等待參數的 無限等待期。
此參數是在 Windows PowerShell 3.0 中引進的。
此參數僅在 Windows 平台上提供。
參數屬性
| 類型: | Int32 |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | TimeoutSec |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Wait
Restart-Computer 會抑制 PowerShell 提示字元,並封鎖管線直到電腦重新啟動。 你可以在腳本中使用這個參數重新啟動電腦,然後在重新啟動完成後繼續處理。
等待參數會無限期等待電腦重新啟動。 你可以使用 逾時 調整時序,並調整 For 和 Delay 參數,等待重新啟動的電腦上的特定服務可用。
當你重新啟動本機電腦時, 等待 參數是無效的。 如果 ComputerName 參數的值包含遠端電腦與本地電腦的名稱,則Restart-Computer會在本地電腦產生非終止的等待錯誤,但會等待遠端電腦重新啟動。
此參數是在 Windows PowerShell 3.0 中引進的。 此參數僅在 Windows 平台上提供。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-WhatIf
顯示如果 Restart-Computer 跑了會發生什麼事。
Restart-Computer指令長沒有執行。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 威斯康辛 |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-WsmanAuthentication
規定用於驗證使用者憑證的機制。 此參數是在 Windows PowerShell 3.0 中引進的。
此參數的可接受值為:Basic、CredSSP、Default、Digest、Kerberos 與 Negotiate。
欲了解更多資訊,請參閱 AuthenticationMechanism。
Warning
憑證安全服務提供者(CredSSP)認證,即將使用者憑證傳送至遠端電腦進行驗證,設計用於需要在多個資源上進行認證的指令,例如存取遠端網路共享。 此機制會增加遠端作業的安全性風險。 如果遠端電腦遭到入侵,傳遞給它的認證可用來控制網路會話。
此參數僅在 Windows 平台上提供。
參數屬性
| 類型: | String |
| 預設值: | None |
| 接受的值: | Basic, CredSSP, Default, Digest, Kerberos, Negotiate |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
String
你可以將包含電腦名稱的字串輸入這個 cmdlet。
輸出
None
此 Cmdlet 不會傳回任何輸出。
備註
- 在 Windows 上,
Restart-Computer使用 Win32Shutdown 方法Win32_OperatingSystem類別。 此方法需要啟用用於重新啟動機器的使用者帳號的 SeShutdownPrivilege 權限。 - 此指令檔於 PowerShell 7.1 中為 Linux 和 macOS 新增。 在 Linux 和 macOS 上,使用
Restart-Computer/sbin/shutdownbash 工具。