共用方式為


Set-Service

啟動、停止和暫停服務,並變更其屬性。

語法

Set-Service
   [-ComputerName <String[]>]
   [-Name] <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-StartupType <ServiceStartMode>]
   [-Status <String>]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Service
   [-ComputerName <String[]>]
   [-DisplayName <String>]
   [-Description <String>]
   [-StartupType <ServiceStartMode>]
   [-Status <String>]
   [-InputObject <ServiceController>]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Cmdlet 會 Set-Service 變更服務的屬性,例如 StatusDescriptionDisplayNameStartupTypeSet-Service 可以啟動、停止、暫停或暫停服務。 若要識別服務,請輸入服務名稱或提交服務物件。 或者,將服務名稱或服務物件向下傳送至 Set-Service

範例

範例 1:變更顯示名稱

在此範例中,服務的顯示名稱已變更。 若要檢視原始的顯示名稱,請使用 Get-Service

Set-Service -Name LanmanWorkstation -DisplayName "LanMan Workstation"

Set-Service會使用 Name 參數來指定服務的名稱 LanmanWorkstationDisplayName 參數會指定新的顯示名稱 LanMan Workstation

範例 2:變更服務的啟動類型

此範例示範如何變更服務的啟動類型。

Set-Service -Name BITS -StartupType Automatic
Get-Service BITS | Select-Object -Property Name, StartType, Status

Name  StartType   Status
----  ---------   ------
BITS  Automatic  Running

Set-Service會使用 Name 參數來指定服務的名稱 BITS。 StartupType 參數會將服務設定為 Automatic

Get-Service會使用 Name 參數來指定 BITS 服務,並將物件傳送至管線。 Select-Object會使用 Property 參數來顯示 BITS 服務的狀態。

範例 3:變更服務的描述

此範例會變更 BITS 服務的描述,並顯示結果。

Cmdlet Get-CimInstance 會使用,因為它會傳回包含服務 DescriptionWin32_Service 物件。

Get-CimInstance Win32_Service -Filter 'Name = "BITS"'  | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth. If the service is
              disabled, then any applications that depend on BITS, such as Windows Update or MSN
              Explorer, will be unable to automatically download programs and other information.

Set-Service -Name BITS -Description "Transfers files in the background using idle network bandwidth."
Get-CimInstance Win32_Service -Filter 'Name = "BITS"' | Format-List  Name, Description

Name        : BITS
Description : Transfers files in the background using idle network bandwidth.

Get-CimInstance 將物件向下傳送至管線, Format-List 並顯示服務的名稱和描述。 為了進行比較,命令會在更新描述之前和之後執行。

Set-Service會使用 Name 參數來指定 BITS 服務。 Description 參數會指定服務描述的更新文字。

範例 4:啟動服務

在此範例中,會啟動服務。

Set-Service -Name WinRM -Status Running -PassThru

Status   Name               DisplayName
------   ----               -----------
Running  WinRM              Windows Remote Management (WS-Manag...

Set-Service會使用 Name 參數來指定服務 WinRMStatus 參數會使用 [執行]來啟動服務。 PassThru 參數會輸出顯示結果的 ServiceController 物件。

範例 5:暫停服務

此範例會使用管線暫停至服務。

Get-Service -Name Schedule | Set-Service -Status Paused

Get-Service會使用 Name 參數來指定排程服務,並將對象傳送至管線。 Set-Service會使用 Status 參數將服務設定為 Paused

範例 6:停止服務

此範例會使用變數來停止服務。

$S = Get-Service -Name Schedule
Set-Service -InputObject $S -Status Stopped

Get-Service會使用 Name 參數來指定服務排。 物件會儲存在變數 $S中。 Set-Service會使用 InputObject 參數,並指定儲存$S的物件。 Status 參數會將服務設定為停止。

範例 7:設定多個服務的啟動類型

Cmdlet Set-Service 一次只接受一個服務名稱。 不過,您可以使用管線將多個服務傳送至 , Set-Service 以變更多個服務的組態。

Get-Service SQLWriter,spooler |
    Set-Service -StartupType Automatic -PassThru |
    Select-Object Name, StartType

Name      StartType
----      ---------
spooler   Automatic
SQLWriter Automatic

參數

-ComputerName

指定一或多部計算機。 針對遠端計算機,輸入 NetBIOS 名稱、IP 位址或完整功能變數名稱。 如果未指定 ComputerName 參數,命令會在本機電腦上執行。

此參數不依賴 PowerShell 遠端處理。 即使您的電腦未設定為執行遠端命令,您也可以使用 ComputerName 參數。

類型:String[]
別名:cn
Position:Named
預設值:Local computer
必要:False
接受管線輸入:True
接受萬用字元:False

-Confirm

在執行 之前 Set-Service,提示您進行確認。

類型:SwitchParameter
別名:cf
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-Description

指定服務的新描述。

服務描述會出現在計算機管理、服務。 Description 不是 ServiceController 物件的屬性Get-Service 若要查看服務描述,請使用 Get-CimInstance ,傳回 代表服務的 Win32_Service 物件。

類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-DisplayName

指定服務的新顯示名稱。

注意

一般而言, Set-Service 只能在 Windows 服務上運作,而不是驅動程式。 不過,如果您指定驅動程式的名稱, Set-Service 可以將目標設為驅動程式。

類型:String
別名:DN
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-InputObject

指定 代表要變更之服務的 ServiceController 物件。 輸入包含 物件的變數,或輸入取得物件的命令或表達式,例如 Get-Service 命令。 您可以使用管線將服務物件傳送至 Set-Service

類型:ServiceController
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:False

-Name

指定要變更之服務的服務名稱。 不允許通配符。 您可以使用管線將服務名稱傳送至 Set-Service

注意

一般而言, Set-Service 只能在 Windows 服務上運作,而不是驅動程式。 不過,如果您指定驅動程式的名稱, Set-Service 可以將目標設為驅動程式。

類型:String
別名:ServiceName, SN
Position:0
預設值:None
必要:True
接受管線輸入:True
接受萬用字元:False

-PassThru

會傳 回 ServiceController 物件,代表已變更的服務。 根據預設, Set-Service 不會產生任何輸出。

類型:SwitchParameter
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-StartupType

設定服務的啟動類型。 此參數可接受的值為:

  • 自動 -服務是在系統啟動時啟動或由作業系統啟動。 如果自動啟動的服務依賴手動啟動的服務,以手動方式啟動的服務也會在系統啟動時自動啟動。
  • 已停用 - 服務已停用,且無法由使用者或應用程式啟動。
  • 手動 - 服務只會由使用者、使用服務控制管理員或應用程式手動啟動。
  • 開機 - 指出服務是系統載入器啟動的裝置驅動程式。 這個值僅適用於裝置驅動程式。
  • 系統 - 指出服務是 『IOInitSystem()』 函式啟動的裝置驅動程式。 這個值僅適用於裝置驅動程式。

預設值為 Automatic

類型:ServiceStartMode
別名:StartMode, SM, ST
接受的值:Boot, System, Automatic, Manual, Disabled
Position:Named
預設值:Automatic
必要:False
接受管線輸入:False
接受萬用字元:False

-Status

指定服務的狀態。

此參數可接受的值如下:

  • 已暫停。 暫停服務。
  • 正在執行。 啟動服務。
  • 已停止。 停止服務。
類型:String
接受的值:Paused, Running, Stopped
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-WhatIf

顯示執行時 Set-Service 會發生什麼事。 Cmdlet 未執行。

類型:SwitchParameter
別名:wi
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

ServiceController

您可以使用管線將服務物件傳送至此 Cmdlet。

String

您可以使用管線將包含服務名稱的字串傳送至此 Cmdlet。

輸出

None

根據預設,此 Cmdlet 不會傳回任何輸出。

ServiceController

當您使用 PassThru 參數時,這個 Cmdlet 會 傳回 ServiceController 物件。

備註

Set-Service 需要提高的許可權。 使用 [ 以系統管理員身分執行] 選項。

Set-Service 只有當目前使用者具有管理服務的許可權時,才能控制服務。 如果命令無法正確運作,您可能沒有必要的許可權。

若要尋找服務的服務名稱或顯示名稱,請使用 Get-Service。 服務名稱位於 Name 資料行中,而顯示名稱則位於 DisplayName 數據行中。