Start-Service
啟動一或多個已停止的服務。
語法
InputObject (預設值)
Start-Service
[-InputObject] <ServiceController[]>
[-PassThru]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Default
Start-Service
[-Name] <String[]>
[-PassThru]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
DisplayName
Start-Service
-DisplayName <String[]>
[-PassThru]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Start-Service Cmdlet 會針對每個指定的服務,將啟動訊息傳送至 Windows 服務控制器。 如果服務已在執行中,則會忽略訊息,而不會發生錯誤。 您可以依服務名稱或顯示名稱來指定服務,也可以使用 InputObject 參數來提供服務物件,代表您想要啟動的服務。
範例
範例 1:使用服務名稱啟動服務
此範例會在本機計算機上啟動 EventLog 服務。 Name 參數會依服務名稱來識別服務。
Start-Service -Name "eventlog"
範例 2:顯示資訊而不啟動服務
此範例顯示若您啟動顯示名稱包含「remote」的服務,會發生什麼。
Start-Service -DisplayName *remote* -WhatIf
DisplayName 參數會以其顯示名稱而非服務名稱來識別服務。 WhatIf 參數會導致 Cmdlet 顯示當您執行命令但不進行變更時會發生什麼事。
範例 3:啟動服務,並在文字文件中記錄動作
此範例會在計算機上啟動 Windows Management Instrumentation (WMI) 服務,並將動作的記錄新增至 services.txt 檔案。
$s = Get-Service wmi
Start-Service -InputObject $s -PassThru | Format-List >> services.txt
首先,我們使用 Get-Service 來取得代表 WMI 服務的物件,並將其儲存在 $s 變數中。 接下來,我們會啟動服務。 如果沒有 PassThru 參數,Start-Service 不會建立任何輸出。 管線運算符 (|) 會將對象輸出 Start-Service 傳遞至 Format-List Cmdlet,將物件格式化為其屬性的清單。 附加重新導向運算子 (>>) 會將輸出重新導向至 services.txt 檔案。 輸出會附加至現有檔案的結尾。
範例 4:啟動已停用的服務
此範例示範如何在服務的啟動類型為 停用時啟動該服務。
PS> Start-Service tlntsvr
Start-Service : Service 'Telnet (TlntSvr)' cannot be started due to the following error: Cannot start service TlntSvr on computer '.'.
At line:1 char:14
+ Start-Service <<<< tlntsvr
PS> Get-CimInstance win32_service | Where-Object Name -eq "tlntsvr"
ExitCode : 0
Name : TlntSvr
ProcessId : 0
StartMode : Disabled
State : Stopped
Status : OK
PS> Set-Service tlntsvr -StartupType manual
PS> Start-Service tlntsvr
第一次嘗試啟動 Telnet 服務 (tlntsvr) 失敗。
Get-CimInstance 命令顯示 Tlntsvr 服務的 StartMode 屬性設定為 停用。
Set-Service Cmdlet 會將開始類型變更為 Manual。 現在,我們可以重新提交 Start-Service 命令。 這次,命令成功了。 若要確認命令成功,請執行 Get-Service。
參數
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | cf |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-DisplayName
指定要啟動之服務的顯示名稱。 允許使用通配符字元。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
DisplayName
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Exclude
指定此 Cmdlet 省略的服務。 此參數的值用來說明 Name 參數。 輸入名稱元素或模式,例如 s*。 允許使用通配符字元。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Include
指定此 Cmdlet 啟動的服務。 此參數的值用來說明 Name 參數。 輸入名稱元素或模式,例如 s*。 允許使用通配符字元。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-InputObject
指定 ServiceController 物件來表示要啟動的服務。 輸入包含 物件的變數,或輸入取得物件的命令或表達式。
參數屬性
| 類型: | ServiceController[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
InputObject
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Name
指定要啟動之服務的服務名稱。
參數名稱是選擇性的。 您可以使用 Name 或其別名、ServiceName,或省略參數名稱。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 服務名稱 |
參數集
Default
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-PassThru
傳回一個代表服務的物件。 根據預設,此 Cmdlet 不會產生任何輸出。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 指令未執行。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 無線 |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
System.ServiceProcess.ServiceController, System.String
您可以使用管線將代表包含此 Cmdlet 服務名稱的服務或字串的物件傳送至此 Cmdlet。
輸出
None, System.ServiceProcess.ServiceController
如果您指定 passThru
備註
- 您也可以透過內建別名
Start-Service來參考sasv。 如需詳細資訊,請參閱 about_Aliases。 -
Start-Service只有在目前用戶有權執行這項操作時,才能控制服務。 如果命令無法正常運作,您可能沒有必要的許可權。 - 若要尋找系統上的服務名稱和顯示名稱,請輸入
Get-Service。 服務名稱會出現在 [Name] 資料行中,而顯示名稱會出現在 DisplayName 數據行中。 - 您只能啟動啟動類型為手動、自動或自動(延遲啟動)的服務。 您無法啟動啟動類型為 Disabled 的服務。 如果
Start-Service命令失敗並出現訊息Cannot start service \<service-name\> on computer,請使用Get-CimInstance來尋找服務的啟動類型,如果需要,請使用Set-Servicecmdlet 來變更服務的啟動類型。 - 某些服務,例如效能記錄和警示 (SysmonLog) 會在沒有工作要做時自動停止。 當 PowerShell 啟動幾乎立即停止本身的服務時,它會顯示下列訊息:
Service \<display-name\> start failed.