暫停一或多個執行中的服務。
語法
Suspend-Service [-Name] <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Suspend-Service -DisplayName <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Suspend-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
描述
Suspend-Service Cmdlet 會針對每一個指定的服務傳送暫停訊息給 Windows 服務控制器。服務暫停時仍在執行中,但是它的動作在恢復執行之前會停止,例如使用 Resume-Service 即可恢復。您可以根據服務名稱或是顯示名稱指定服務,或是使用 InputObject 參數傳遞代表要暫停之服務的服務物件。
參數
-DisplayName <string[]>
指定要暫停之服務的顯示名稱。允許使用萬用字元。
必要? |
true |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Exclude <string[]>
忽略指定的服務。此參數的值用於限定 Name 參數。輸入名稱元素或模式,例如 "s*"。允許使用萬用字元。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Include <string[]>
只暫停指定的服務。此參數的值用於限定 Name 參數。輸入名稱元素或模式,例如 "s*"。允許使用萬用字元。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-InputObject <ServiceController[]>
指定表示要暫停之服務的 ServiceController 物件。請輸入包含物件的變數,或輸入可取得物件的命令或運算式。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByValue) |
接受萬用字元? |
false |
-Name <string[]>
指定要暫停之服務的服務名稱。允許使用萬用字元。
參數名稱為選擇性。您可使用 "Name" 或其別名 "ServiceName",亦可省略參數名稱。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByValue, ByPropertyName) |
接受萬用字元? |
false |
-PassThru
傳回代表服務的物件。根據預設,此 Cmdlet 不會產生任何輸出。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Confirm
在執行命令前先提示確認。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-WhatIf
說明執行命令時將會發生何種情況,但不會實際執行命令。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
System.ServiceProcess.ServiceController 或 System.String 您可以經由管道將服務物件或包含服務名稱的字串輸出至 Suspend-Service。 |
輸出 |
None 或 System.ServiceProcess.ServiceController 當您使用 PassThru 參數時,Suspend-Service 會產生代表此服務的 System.ServiceProcess.ServiceController 物件,否則,這個 Cmdlet 不會產生任何輸出。 |
附註
Suspend-Service 只能在目前使用者具有相關執行權限時控制該服務。如果命令無法正常運作,可能表示您不具有必要權限。
另外,Suspend-Service 只能暫停可支援暫停及恢復動作的服務。若要判斷特定服務是否可以暫停,請搭配 "CanPauseAndContinue" 屬性使用 Get-Service Cmdlet。例如,"get-service wmi | Format-List name, canpauseandcontinue"。若要找出電腦上可以進行暫停的所有服務,請輸入 "Get-Service | Where-Object {$_.canpauseandcontinue -eq "True"}"。
若要尋找系統上所有服務的服務名稱和顯示名稱,請輸入 "Get-Service"。此服務名稱顯示於 Name 欄,顯示名稱則顯示於 DisplayName 欄。
範例 1
C:\PS>suspend-service -displayname "Telnet" 描述 ----------- 這個命令會暫停本機電腦上的 Telnet 服務 (Tlntsvr)。
範例 2
C:\PS>suspend-service -name lanman* -whatif 描述 ----------- 這個命令會告訴您當暫停的服務名稱開頭為 "lanman" 時,將會發生何種情況。若要暫停這些服務,請在不含 WhatIf 參數條件下再執行一次這個命令。
範例 3
C:\PS>get-service schedule | suspend-service 描述 ----------- 這個命令會用 Get-Service Cmdlet,取得代表電腦上「工作排程器」 (Schedule) 服務的物件。管線運算子 (|) 會將結果傳送到 Suspend-Service Cmdlet,並由此 Cmdlet 暫停該服務。
範例 4
C:\PS>get-service | where-object {$_.canpauseandcontinue -eq "True"} | suspend-service -confirm 描述 ----------- 這個命令會暫停電腦上可進行暫停的所有服務。它會使用 Get-Service Cmdlet 取得代表電腦上之服務的物件。管線運算子 (|) 會將結果傳遞給 Where-Object Cmdlet,此 Cmdlet 只選取 CanPauseAndContinue 屬性的值為 "True" 的服務。另一個管線運算子會將結果傳送到 Suspend-Service Cmdlet。Confirm 參數會在暫停每個服務之前先提示確認。
請參閱