次の方法で共有


Set-Service

サービスを開始、停止、および中断し、そのプロパティを変更します。

構文

Set-Service
   [-Name] <String>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-Status <String>]
   [-SecurityDescriptorSddl <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-Service
   [-InputObject] <ServiceController>
   [-DisplayName <String>]
   [-Credential <PSCredential>]
   [-Description <String>]
   [-StartupType <ServiceStartupType>]
   [-SecurityDescriptorSddl <String>]
   [-Status <String>]
   [-Force]
   [-PassThru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

このコマンドレットは、Windows プラットフォームでのみ使用できます。

Set-Service コマンドレットは、StatusDescriptionDisplayNameStartupType などのサービスのプロパティを変更Set-Service は、サービスを開始、停止、中断、または一時停止できます。 サービスを識別するには、サービス名を入力するか、サービス オブジェクトを送信します。 または、サービス名またはサービス オブジェクトをパイプラインの下に送信して、 Set-Serviceします。

例 1: 表示名を変更する

この例では、サービスの表示名が変更されています。 元の表示名を表示するには、 Get-Serviceを使用します。

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

Set-Service は、 Name パラメーターを使用して、サービスの名前 LanmanWorkstationを指定します。 DisplayName パラメーターは、新しい表示名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 サービスの説明を変更し、結果を表示します。

Get-CimInstance コマンドレットは、サービスの Description を含むWin32_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 パラメーターを使用して、サービス WinRMを指定します。 Status パラメーターは、Running 値を使用してサービスを開始します。 PassThru パラメーターは、結果を表示するServiceController オブジェクトを出力します。

例 5: サービスを中断する

この例では、パイプラインを使用してサービスを一時停止します。

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

Get-Service では、 Name パラメーターを使用して Schedule サービスを指定し、パイプラインの下にオブジェクトを送信します。 Set-Service では、 Status パラメーターを使用して、サービスを Paused に設定します。

例 6: サービスを停止する

この例では、変数を使用してサービスを停止します。

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

Get-Service では、 Name パラメーターを使用して、サービス Schedule を指定します。 オブジェクトは変数 $Sに格納されます。 Set-Service は、 InputObject パラメーターを使用し、 $S格納されているオブジェクトを指定します。 Status パラメーターは、サービスを Stopped に設定します。

例 7: リモート・システム上のサービスを停止する

次の使用例は、リモート コンピューター上のサービスを停止します。 詳細については、「 Invoke-Command」を参照してください。

$Cred = Get-Credential
$S = Get-Service -Name Schedule
Invoke-Command -ComputerName server01.contoso.com -Credential $Cred -ScriptBlock {
  Set-Service -InputObject $S -Status Stopped
}

Get-Credential は、ユーザー名とパスワードの入力を求め、資格情報を $Cred 変数に格納します。 Get-Service では、 Name パラメーターを使用して、 Schedule サービスを指定します。 オブジェクトは変数 $Sに格納されます。

Invoke-Command は、 ComputerName パラメーターを使用してリモート コンピューターを指定します。 Credential パラメーターは、$Cred変数を使用してコンピューターにサインオンします。 ScriptBlockSet-Serviceを呼び出します。 InputObject パラメーターは、$Sに格納されているサービス オブジェクトを指定します。 Status パラメーターは、サービスを Stopped に設定します。

例 8: サービスの資格情報を変更する

この例では、サービスの管理に使用される資格情報を変更します。

$credential = Get-Credential
Set-Service -Name Schedule -Credential $credential

Get-Credential は、ユーザー名とパスワードの入力を求め、資格情報を $credential 変数に格納します。 Set-Service では、 Name パラメーターを使用して、 Schedule サービスを指定します。 Credential パラメーターは、$credential変数を使用し、Schedule サービスを更新します。

例 9: サービスの SecurityDescriptor を変更する

この例では、サービスの SecurityDescriptor を変更します。

$SDDL = "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;SU)"
Set-Service -Name "BITS" -SecurityDescriptorSddl $SDDL

SecurityDescriptor$SDDL変数に格納されます。 Set-Service では、 Name パラメーターを使用して、 BITS サービスを指定します。 SecurityDescriptorSddl パラメーターは$SDDLを使用して、BITS サービスのSecurityDescriptorを変更します。

例 10: 複数のサービスのスタートアップの種類を設定する

Set-Service コマンドレットは、一度に 1 つのサービス名のみを受け入れます。 ただし、複数のサービスをパイプ処理して Set-Service して、複数のサービスの構成を変更できます。

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

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

パラメーター

-Confirm

Set-Serviceを実行する前に確認を求めるメッセージが表示されます。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Credential

Service ログオン アカウントとしてサービスによって使用されるアカウントを指定します。

User01Domain01\User01 などのユーザー名を入力するか、Get-Credential コマンドレットによって生成されたPSCredential オブジェクトを入力します。 ユーザー名を入力すると、このコマンドレットによってパスワードの入力が求められます。

資格情報は PSCredential オブジェクトに格納され、パスワードは SecureString として格納されます。

Note

SecureString データ保護の詳細については、「 SecureString のセキュリティ保護方法」を 参照してください。

このパラメーターは、PowerShell 6.0 で導入されました。

型:PSCredential
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Description

サービスの新しい説明を指定します。

サービスの説明は、 Computer Management、Services に表示されます。 Description は、Get-Service ServiceController オブジェクトのプロパティではありません。 サービスの説明を表示するには、サービスを表すWin32_Service オブジェクトを返すGet-CimInstanceを使用します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DisplayName

サービスの新しい表示名を指定します。

Note

通常、 Set-Service は Windows サービスでのみ動作し、ドライバーでは動作しません。 ただし、ドライバーの名前を指定した場合、 Set-Service はドライバーを対象にすることができます。

型:String
Aliases:DN
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Force

サービスの停止モードを指定します。 このパラメーターは、 -Status Stopped が使用されている場合にのみ機能します。 有効 Set-Service 場合、ターゲット サービスが停止する前に依存サービスが停止されます。 既定では、実行中の他のサービスがターゲット サービスに依存している場合に例外が発生します。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

変更するサービスを表す ServiceController オブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式 ( Get-Service コマンドなど) を入力します。 パイプラインを使用して、サービス オブジェクトを Set-Serviceに送信できます。

型:ServiceController
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Name

変更するサービスのサービス名を指定します。 ワイルドカード文字は使用できません。 パイプラインを使用して、サービス名を Set-Serviceに送信できます。

Note

通常、 Set-Service は Windows サービスでのみ動作し、ドライバーでは動作しません。 ただし、ドライバーの名前を指定した場合、 Set-Service はドライバーを対象にすることができます。

型:String
Aliases:ServiceName, SN
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-PassThru

変更されたサービスを表す ServiceController オブジェクトを返します。 既定では、 Set-Service は出力を生成しません。

型:SwitchParameter
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-SecurityDescriptorSddl

サービスの SecurityDescriptorSddl 形式で指定します。 このパラメーターを使用して Set-Service を呼び出すアカウントには、WRITE_DACとWRITE_OWNERのアクセス許可が必要です。 詳細については、「 Service のセキュリティとアクセス権を参照してください。

型:String
Aliases:sd
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-StartupType

サービスの開始モードを指定します。

このパラメーターに使用できる値は次のとおりです。

  • 自動 - サービスは、オペレーティング システムの起動時に開始されるか、オペレーティング システムによって開始されました。 自動開始サービスが手動開始サービスに依存する場合は、手動開始サービスもシステム起動時に自動的に開始されます。
  • AutomaticDelayedStart - システムが起動した直後に起動します。
  • 無効 - サービスは無効になっており、ユーザーまたはアプリケーションが開始することはできません。
  • InvalidValue - 効果はありません。 コマンドレットはエラーを返しませんが、サービスの StartupType は変更されません。
  • 手動 - サービスは、手動、ユーザー、Service Control Manager、またはアプリケーションによってのみ開始されます。
型:ServiceStartupType
Aliases:StartMode, SM, ST, StartType
指定可能な値:Automatic, AutomaticDelayedStart, Disabled, InvalidValue, Manual
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Status

サービスの状態を指定します。

このパラメーターに使用できる値は次のとおりです。

  • 一時停止。 サービスを中断します。
  • 実行中。 サービスを開始します。
  • 停止済み。 サービスを停止します。
型:String
指定可能な値:Paused, Running, Stopped
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

Set-Serviceが実行された場合の動作を示します。 コマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

ServiceController

サービス オブジェクトをこのコマンドレットにパイプできます。

String

サービス名を含む文字列をこのコマンドレットにパイプできます。

出力

None

既定では、このコマンドレットは出力を返しません。

ServiceController

PassThru パラメーターを使用すると、このコマンドレットは ServiceController オブジェクトを返します。

メモ

このコマンドレットは、Windows プラットフォームでのみ使用できます。

Set-Service には、昇格されたアクセス許可が必要です。 管理者として実行オプションを使用します。

Set-Service は、現在のユーザーがサービスを管理するアクセス許可を持っている場合にのみ、サービスを制御できます。 コマンドが正しく機能しない場合は、必要なアクセス許可がない可能性があります。

サービスのサービス名または表示名を検索するには、 Get-Serviceを使用します。 サービス名は Name 列にあり、表示名は DisplayName 列にあります。