サービスを開始、停止、および中断し、そのプロパティを変更します。
構文
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 パラメーターを使用して目的の状態を指定します。
関連項目