停止服務並接著啟動一或多個服務。

語法

Restart-Service [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Restart-Service -DisplayName <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Restart-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

描述

Restart-Service Cmdlet 會先傳送停止訊息、然後傳送開始訊息給指定之服務的 Windows 服務控制器。如果服務已經停止,它會直接啟動而不通知您發生錯誤。您可以依服務名稱或是顯示名稱指定服務,或是使用 InputObject 參數傳遞代表各個要重新啟動之服務的物件。

參數

-DisplayName <string[]>

指定要重新啟動之服務的顯示名稱。允許使用萬用字元。

必要?

true

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Exclude <string[]>

忽略指定的服務。此參數的值用於限定 Name 參數。輸入名稱元素或模式,例如 "s*"。允許使用萬用字元。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Force

覆蓋限制以免命令無法成功執行,但僅限於變更不會危害安全性的部分。例如,Force 會停止並重新啟動具有依存服務的服務。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-Include <string[]>

只重新啟動指定的服務。此參數的值用於限定 Name 參數。輸入名稱元素或模式,例如 "s*"。允許使用萬用字元。

必要?

false

位置?

named

預設值

接受管線輸入?

false

接受萬用字元?

false

-InputObject <ServiceController[]>

指定代表要重新啟動之服務的 ServiceController 物件。請輸入包含物件的變數,或輸入可取得物件的命令或運算式。

必要?

false

位置?

named

預設值

接受管線輸入?

true (ByValue)

接受萬用字元?

false

-Name <string[]>

指定要重新啟動之服務的服務名稱。

必要?

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

您可以經由管道將服務物件或包含服務名稱的字串輸出至 Restart-Service。

輸出

None 或 System.ServiceProcess.ServiceController

當您使用 PassThru 參數時,Restart-Service 會產生代表已重新啟動之服務的 System.ServiceProcess.ServiceController 物件,否則,這個 Cmdlet 不會產生任何輸出。

附註

Restart-Service 只能在目前使用者具有相關執行權限時控制該服務。如果命令無法正常運作,可能表示您不具有必要權限。

若要尋找系統上所有服務的服務名稱和顯示名稱,請輸入 "Get-Service"。服務名稱會出現在 Name 一欄中,而顯示名稱會出現在 DisplayName 一欄中。

範例 1

C:\PS>restart-service wmi

描述
-----------
這個命令會重新啟動本機電腦上的 Windows Management Instrumentation (WMI) 服務。






範例 2

C:\PS>restart-service -displayname net* -exclude "net logon"

描述
-----------
這個命令會重新啟動顯示名稱開頭為 "Net" 的服務,但 "Net Logon" 服務除外。






範例 3

C:\PS>get-service net* | where-object {$_.Status -eq "Stopped"} | restart-service

描述
-----------
這個命令會啟動電腦上所有已經停止的網路服務。

它會使用 Get-Service Cmdlet 取得代表服務名稱開頭為 "net" 之服務的物件 (已省略選擇性的 Name 參數名稱)。管線運算子 (|) 會將這些服務物件傳送給 Where-Object Cmdlet,該 Cmdlet 只會選取狀態為 "stopped" 的服務。另一個管線運算子會將選取的服務傳送給 Restart-Service。實際上,您可以在使用此命令之前先用 WhatIf 參數查看其功用。






請參閱




目錄