Stop-Computer
將本機電腦和遠端電腦停止 (關機)。
Syntax
Stop-Computer
[-AsJob]
[-DcomAuthentication <AuthenticationLevel>]
[-WsmanAuthentication <String>]
[-Protocol <String>]
[[-ComputerName] <String[]>]
[[-Credential] <PSCredential>]
[-Impersonation <ImpersonationLevel>]
[-ThrottleLimit <Int32>]
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Stop-Computer Cmdlet 會從遠端關閉電腦。 它也可以將本機電腦關機。
您可以使用 Stop-Computer 的參數以背景作業的形式執行關機作業、指定驗證層級和替代認證、限制建立以執行命令的並行連線,以及強制立即關機。
除非您使用 AsJob 參數,否則此 Cmdlet 不需要 Windows PowerShell 遠端處理。
範例
範例 1:關閉本機計算機
PS C:\> Stop-Computer
此命令將本機電腦關機。
範例 2:關閉兩部遠端計算機和本機電腦
PS C:\> Stop-Computer -ComputerName "Server01", "Server02", "localhost"
此命令會停止兩部遠端計算機:Server01 和 Server02,以及識別為 localhost 的本機電腦。
範例 3:關閉遠端計算機作為背景工作
PS C:\> $j = Stop-Computer -ComputerName "Server01", "Server02" -AsJob
PS C:\> $results = $j | Receive-Job
PS C:\> $results
這些命令會在兩部遠端計算機上以背景工作的形式執行 Stop-Computer ,然後取得結果。
第一個命令會指定 AsJob 參數,以背景作業的形式執行命令。 命令會將產生的工作物件儲存於 $j 變數中。
第二個命令會使用管線運算符,將$j中的作業對象傳送至 Receive-Job,以取得作業結果。 命令將結果儲存於 $results 變數中。
第三個命令顯示儲存於 $results 變數中的結果。
由於 AsJob 會在本機電腦上建立作業,並自動將結果傳回至本機電腦,因此您可以以本機命令的形式執行 Receive-Job 。
範例 4:關閉遠端電腦
PS C:\> Stop-Computer -CompupterName "Server01" -Impersonation anonymous -Authentication PacketIntegrity
此命令會停止 Server01 遠端電腦。 命令使用自訂的模擬和驗證設定。
範例 5:
PS C:\> $s = Get-Content Domain01.txt
PS C:\> $c = Get-Credential domain01\admin01
PS C:\> Stop-Computer -ComputerName $s -Force -ThrottleLimit 10 -Credential $c
這些命令強制將 Domain01 中的所有電腦立即關機。
第一個命令會取得網域中的計算機清單,然後將它們儲存在 $s 變數中。
第二個命令會取得網域系統管理員的認證,然後將認證儲存在 $c 變數中。
第三個命令將電腦關機。 它會使用 ComputerName 參數來提交$s變數中的計算機清單、 Force 參數強制立即關機,以及 Credential 參數來提交儲存在$c變數中的認證。 它也會使用 ThrottleLimit 參數將命令的同時連線數目限制為 10 個。
參數
-AsJob
表示此 Cmdlet 會以背景作業的形式執行。
若要使用此參數,本機和遠端電腦必須設定為遠端處理,而且,在 Windows Vista 和更新版本的 Windows 作業系統上,您必須使用 [以系統管理員身分執行] 選項開啟 Windows PowerShell。 如需詳細資訊,請參閱 about_Remote_Requirements。
當您指定 AsJob 參數時,命令會立即傳回代表背景作業的物件。 工作完成後,您可以繼續在工作階段中工作。 工作會在本機電腦上建立,而來自遠端電腦的結果則會自動傳回到本機電腦。 若要取得工作結果,請使用 Receive-Job Cmdlet。
如需有關 Windows PowerShell 背景工作的詳細資訊,請參閱 about_Jobs 和 about_Remote_Jobs。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
指定要停止的電腦。 預設是本機電腦。
請輸入一或多部電腦的 NETBIOS 名稱、IP 位址或完整網域名稱 (以逗號分隔的清單方式)。 若要指定本機計算機,請輸入計算機名稱或localhost。
此參數不必依賴 Windows PowerShell 遠端功能。 即使您的電腦未設定為執行遠端命令,您仍然可以使用 ComputerName 參數。
Type: | String[] |
Aliases: | CN, __SERVER, Server, IPAddress |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
在執行 Cmdlet 前提示您確認。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
指定具有執行此動作權限的使用者帳戶。 預設為目前使用者。
輸入使用者名稱,例如User01或Domain01\User01,或輸入 PSCredential 物件,例如來自 Get-Credential Cmdlet 的使用者名稱。
Type: | PSCredential |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DcomAuthentication
指定此 Cmdlet 搭配 WMI 使用的驗證層級。 Stop-Computer 使用 WMI。 此參數可接受的值為:
- 預設值。 Windows 驗證
- 無。 沒有 COM 驗證。
- [連線]。 連線等級 COM 驗證。
- 叫。 呼叫等級 COM 驗證。
- 包。 封包層級 COM 驗證
- PacketIntegrity。 封包完整性等級 COM 驗證。
- PacketPrivacy。 封包隱私權層級 COM 驗證
- 未變更。 與上一個命令相同
預設值為 Packet。
如需此參數值的詳細資訊,請參閱 MSDN 連結庫中的 AuthenticationLevel 列舉 。
Type: | AuthenticationLevel |
Aliases: | Authentication |
Accepted values: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
強制將電腦立即關機。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Impersonation
指定此 Cmdlet 呼叫 WMI 時要使用的模擬層級。 Stop-Computer 使用 WMI。 此參數可接受的值為:
- 預設值。 預設模擬。
- 匿名。 隱藏呼叫端的身分識別。
- Identify。 允許物件查詢呼叫端的認證。
- Impersonate。 允許物件使用呼叫端的認證。
預設值為 Impersonate。
Type: | ImpersonationLevel |
Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Protocol
指定要用來重新啟動電腦的通訊協定。 此參數可接受的值為:WSMan 和 DCOM。 預設值為 DCOM。
此參數是在 Windows PowerShell 3.0 引進。
Type: | String |
Accepted values: | DCOM, WSMan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ThrottleLimit
指定為執行此命令可建立的最大同時連線數。 若省略此參數,或輸入值為 0,則會使用預設值 32。
節流限制僅適用於目前命令,不適用於工作階段或電腦。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WsmanAuthentication
指定此 Cmdlet 使用 WSMan 通訊協定時,用來驗證使用者認證的機制。 此參數可接受的值為:
- 基本資訊
- CredSSP
- Default
- Digest
- Kerberos
- Negotiate。
預設值為 Default。
如需此參數值的詳細資訊,請參閱 MSDN 連結庫中的 AuthenticationMechanism 列舉 。
注意:認證安全性服務提供者 (CredSSP) 驗證,其中使用者認證會傳遞至要驗證的遠端電腦,是針對需要對多個資源進行驗證的命令所設計,例如存取遠端網路共用。 此機制會使得遠端作業的安全性風險變高。 若遠端電腦遭到入侵,傳遞給它的認證便可用來控制網路工作階段。
此參數是在 Windows PowerShell 3.0 引進。
Type: | String |
Accepted values: | Default, Basic, Negotiate, CredSSP, Digest, Kerberos |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
None
您無法使用管線傳送輸入至此 Cmdlet。
輸出
None or System.Management.Automation.RemotingJob
如果您指定 AsJob 參數,Cmdlet 會傳回 System.Management.Automation.RemotingJob 物件。 否則,它不會產生任何輸出。
備註
- 此 Cmdlet 使用 Win32_OperatingSystem WMI 類別的 Win32Shutdown 方法。
- 在 Windows PowerShell 2.0 中,當您重新啟動/停止遠端電腦時,AsJob 參數無法可靠地運作。 在 Windows PowerShell 3.0 中,已變更實作來解決這個問題。