共用方式為


Start-Service

啟動一或多個已停止的服務。

語法

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

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

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

描述

Start-Service Cmdlet 會針對每一個指定的服務,傳送啟動訊息給 Windows 服務控制器。如果服務已在執行中,此訊息就會被略過,而不會產生任何錯誤。您可以依服務名稱或是顯示名稱指定服務,或是使用 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

您可經由管道將代表服務或是包含服務名稱之字串的物件輸出至 Start-Service。

輸出

無或 System.ServiceProcess.ServiceController

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

附註

您也可以利用內建的別名 "sasv" 來參照 Start-Service。如需詳細資訊,請參閱 about_Aliases。

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

若要尋找系統上所有服務的服務名稱和顯示名稱,請輸入 "Get-Service"。此服務名稱顯示於 Name 欄,顯示名稱則顯示於 DisplayName 欄。

您只能啟動具有 "Manual" 或 "Automatic" 等啟動類型的服務,而不能啟動具有 "Disabled" 啟動類型的服務。如果 Start-Service 命令失敗且出現「無法啟動服務 <服務名稱> (於電腦上)」訊息,請使用 Get-WmiObject 命令找出服務的啟動類型,並在必要時,使用 Set-Service 命令變更服務的啟動類型。

有些像是效能記錄及警示 (SysmonLog) 的服務會在沒有工作要執行時自動停止。當 Windows PowerShell 啟動迅速停止自身的服務時,它會顯示下列訊息:「<顯示名稱> 服務啟動失敗。」

範例 1

C:\PS>start-service -name eventlog

描述
-----------
這個命令會啟動本機電腦上的 EventLog 服務。它會使用 Name 參數,依據服務名稱來識別該服務。





範例 2

C:\PS>start-service -displayname *remote* -whatif

描述
-----------
這個命令會告訴您若啟動顯示名稱包含 "remote" 的服務時,將會發生何種情況。它會使用 DisplayName 參數,根據服務的顯示名稱 (而不是服務名稱) 來指定服務。然後,它會使用 WhatIf 參數告訴您如果執行此命令將會發生何種情況,而不會實際去執行此命令。





範例 3

C:\PS>$s = get-service wmi

C:\PS>start-service -InputObject $s -passthru | format-list >> services.txt

描述
-----------
這些命令會啟動電腦上的 Windows Management Instrumentation (WMI) 服務,並且在 services.txt 檔案中加入一筆動作記錄。第一個命令會用 Get-Service Cmdlet 取得代表 WMI 服務的物件,並將它儲存在 $s 變數中。

第二個命令會用 Start-Service Cmdlet 啟動 WMI 服務。它會使用 InputObject 參數,將包含 WMI 服務物件的 $s 變數傳遞到 Start-Service,以便識別服務。接著,它會使用 PassThru 參數建立代表服務啟動的物件。如果沒有這個參數,Start-Service 便不會建立任何輸出。

管線運算子 (|) 會將 Start-Service 建立的物件傳遞到 Format-List Cmdlet,並由此 Cmdlet 將物件格式化成其屬性的清單。附加重新導向運算子 (>>) 會將輸出重新導向 services.txt 檔案,並從這裡將輸出加入至現有檔案的結尾。





範例 4

C:\PS># start-service

描述
-----------
這一系列的命令會顯示如何啟動具有 "Disabled" 啟動類型的服務。使用 Start-Service Cmdlet 啟動 Telnet 服務 (tlntsvr) 的第一個命令執行失敗。

C:\PS>start-service tlntsvr

Start-Service:服務 'Telnet (TlntSvr)' 因為下列錯誤而無法啟動:無法啟動服務 TlntSvr (於電腦 '.' 上)。
位於第 1 行,第 14 個字元
+ start-service  <<<< tlntsvr

第二個命令會使用 Get-WmiObject Cmdlet 取得 Tlntsvr 服務。這個命令會擷取在 StartMode 欄位中具有啟動類型屬性的物件。結果顯示指出 Tlntsvr 服務的啟動類型是 "Disabled"。

C:\PS> get-wmiobject win32_service | where-object {$_.Name -eq "tlntsvr"}

ExitCode  : 0
Name      : TlntSvr
ProcessId : 0
StartMode : Disabled
State     : Stopped
Status    : OK

接下來的命令會使用 Set-Service Cmdlet,將 Tlntsvr 服務的啟動類型變更成 "Manual"。

C:\PS> set-service tlntsvr -startuptype manual

現在,我們可以重新提交 Start-Service 命令。這次命令會執行成功。

C:\PS> start-service tlntsvr

若要確認命令是否執行成功,請使用 Get-Service 命令。





請參閱

概念

Get-Service
Suspend-Service
Stop-Service
Restart-Service
Resume-Service
Set-Service
New-Service