共用方式為


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 中,已變更實作來解決這個問題。