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

構文

Set-Service [-Name] <string> [-Description <string>] [-DisplayName <string>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-確認] [-WhatIf] [<CommonParameters>]

Set-Service [-Description <string>] [-DisplayName <string>] [-InputObject <ServiceController>] [-PassThru] [-StartupType {<Automatic> | <Manual> | <Disabled>}] [-Status <string>] [-ComputerName <string[]>] [-確認] [-WhatIf] [<CommonParameters>]

説明

Set-Service コマンドレットは、状態、説明、表示名、開始モードなど、ローカル サービスまたはリモート サービスのプロパティを変更します。このコマンドレットを使用すると、サービスを開始、停止、または中断 (一時停止) できます。サービスを識別するには、サービス名の入力、サービス オブジェクトの送信、あるいは Set-Service に対するサービス名またはサービス オブジェクトのパイプ処理を行います。

パラメーター

-ComputerName <string[]>

1 台以上のコンピューターを指定します。既定値はローカル コンピューターです。

リモート コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名を入力します。ローカル コンピューターを指定するには、コンピューター名、ドット (.)、または「localhost」を入力します。

このパラメーターは、Windows PowerShell リモート処理に依存しません。コンピューターがリモート コマンドを実行するように構成されていない場合でも、Set-Service の ComputerName パラメーターを使用できます。

必須

false

位置

named

既定値

local computer

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

false

-Description <string>

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

サービスの説明は、[コンピューターの管理] の [サービス] に表示されます。Description は Get-Service が取得する ServiceController オブジェクトのプロパティではありません。サービスの説明を表示するには、Get-WmiObject を使用してサービスを表す Win32_Service オブジェクトを取得します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-DisplayName <string>

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

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-InputObject <ServiceController>

変更するサービスを表す ServiceController オブジェクトを指定します。オブジェクトを格納する変数を入力するか、Get-Service コマンドなど、オブジェクトを取得するコマンドまたは式を入力します。パイプを使用してオブジェクトを Set-Service に渡すこともできます。

必須

false

位置

named

既定値

パイプライン入力を許可する

true (ByValue)

ワイルドカード文字を許可する

false

-Name <string>

変更するサービスのサービス名を指定します。ワイルドカードは使用できません。Set-Service に対してサービス名をパイプ処理することもできます。

必須

true

位置

1

既定値

パイプライン入力を許可する

true (ByValue, ByPropertyName)

ワイルドカード文字を許可する

false

-PassThru

変更されたサービスを表すオブジェクトを返します。既定では、このコマンドレットによる出力はありません。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-StartupType <ServiceStartMode>

サービスの開始モードを変更します。スタートアップの種類で有効な値は以下のとおりです。

-- Automatic: システムの起動時に、自動的に開始されます。

-- Manual: ユーザーまたはプログラムによって開始されます。

-- Disabled: 開始できません。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-Status <string>

サービスを開始、停止、または中断 (一時停止) します。有効な値は次のとおりです。

-- Running: サービスを開始します。

-- Stopped: サービスを停止します。

-- Paused: サービスを中断します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-確認

コマンドを実行する前に確認メッセージを表示します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

-WhatIf

実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。

必須

false

位置

named

既定値

パイプライン入力を許可する

false

ワイルドカード文字を許可する

false

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.ServiceProcess.ServiceController、System.String

パイプを使用して、サービス名が含まれているサービス オブジェクトまたは文字列を Set-Service に渡すことができます。

出力

なし

このコマンドレットはオブジェクトを返しません。

Windows Vista 以降のバージョンの Windows で、Set-Service を使用するには、Windows PowerShell を起動する際に [管理者として実行] を指定する必要があります。

Set-Service では、現在のユーザーに権限がある場合のみサービスを制御できます。コマンドが正常に機能しない場合は、必要な権限が与えられていない可能性があります。

システム上のサービスのサービス名と表示名を参照するには、「get-service」と入力します。サービス名は [Name] 欄に表示され、表示名は [DisplayName] 欄に表示されます。

例 1

C:\PS>set-service -name lanmanworkstation -DisplayName "LanMan Workstation"

説明
-----------
このコマンドを実行すると、lanmanworkstation サービスの表示名が "LanMan Workstation" に変更されます。既定の表示名は "Workstation" です。






例 2

C:\PS>get-wmiobject win32_service -filter "name = 'SysmonLog'"

ExitCode  : 0
Name      : SysmonLog
ProcessId : 0
StartMode : Manual
State     : Stopped
Status    : OK

C:\PS> set-service sysmonlog -startuptype automatic

C:\PS> get-wmiobject win32_service -filter "name = 'SysmonLog'"

ExitCode  : 0
Name      : SysmonLog
ProcessId : 0
StartMode : Auto
State     : Stopped
Status    : OK

C:\PS> get-wmiobject win32_service | format-table Name, StartMode -auto

Name                                  StartMode
----                                  ---------
AdtAgent                              Auto
Alerter                               Disabled
ALG                                   Manual
AppMgmt                               Manual
...

説明
-----------
これらのコマンドを実行すると、Performance Logs and Alerts (SysmonLog) サービスのスタートアップの種類が取得され、開始モードが [自動] に設定され、変更の結果が表示されます。

これらのコマンドは、Get-WmiObject コマンドレットを使用してサービスの Win32_Service オブジェクトを取得します。これは、Get-Service が返す ServiceController オブジェクトに開始モードが含まれていないためです。

最初のコマンドでは、Get-WmiObject コマンドレットを使用して SysmonLog サービスを表す Windows Management Instrumentation (WMI) オブジェクトを取得します。このコマンドの既定の出力では、サービスの開始モードが表示されます。

2 番目のコマンドでは、Set-Service を使用して、開始モードを [自動] に変更します。次に、最初のコマンドを繰り返して変更内容を表示しています。

最後のコマンドでは、コンピューター上のすべてのサービスの開始モードが表示されます。






例 3

C:\PS>set-service -name Schedule -computername S1 -description "Configures and schedules tasks."

C:\PS> get-wmiobject win32_service -computername s1 | where-object {$_.Name -eq "Schedule"} | format-list Name, Description

説明
-----------
これらのコマンドを実行すると、S1 リモート コンピューター上の Task Scheduler サービスの説明が変更され、結果が表示されます。

これらのコマンドは、Get-WmiObject コマンドレットを使用してサービスの Win32_Service オブジェクトを取得します。これは、Get-Service が返す ServiceController オブジェクトにサービスの説明が含まれていないためです。

最初のコマンドでは、Set-Service コマンドを使用して説明を変更しています。サービスのサービス名 Schedule を使用してサービスを指定しています。

2 番目のコマンドでは、Get-WmiObject コマンドレットを使用して、Task Scheduler サービスを表す WMI Win32_Service のインスタンスを取得しています。コマンドの最初の要素が Win32_service クラスのすべてのインスタンスを取得します。

パイプライン演算子 (|) により、結果が Where-Object コマンドレットに渡され、Name プロパティの値が Schedule となっているインスタンスが選択されます。

もう 1 つのパイプライン演算子により結果が Format-List コマンドレットに渡され、Name プロパティと Description プロパティだけのリストとして出力が書式設定されます。






例 4

C:\PS>set-service winrm -status Running -passthru -computername Server02

説明
-----------
このコマンドを実行すると、Server02 コンピューターで WinRM サービスが開始されます。このコマンドは、Status パラメーターを使用して目的の状態 (running) を指定し、PassThru パラメーターを使用して WinRM サービスを表すオブジェクトを返すように Set-Service に指示します。






例 5

C:\PS>get-service schedule -computername S1, S2 | set-service -status paused

説明
-----------
このコマンドは、S1 および S2 リモート コンピューターの Schedule サービスを中断します。また、Get-Service コマンドレットを使用してサービスを取得します。サービスはパイプライン演算子 (|) によって Set-Service コマンドレットに渡され、ステータスが "一時停止" に変更されます。






例 6

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

C:\PS> set-service -inputobject $s -status stopped

説明
-----------
これらのコマンドを実行すると、ローカル コンピューターの Schedule サービスが停止されます。

最初のコマンドは、Get-Service コマンドレットを使用して Schedule サービスを取得します。このコマンドは、サービスを $s 変数に保存します。

2 番目のコマンドは、Set-Service コマンドレットを使用して、Schedule サービスの状態を "停止" に変更します。このコマンドは InputObject パラメーターを使用して $s 変数に保存されているサービスを送信し、Status パラメーターを使用して目的の状態を指定します。






関連項目




目次