Start-Service
停止しているサービスを 1 つ以上開始します。
構文
Start-Service [-Name] <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Start-Service -DisplayName <string[]> [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Start-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
説明
Start-Service コマンドレットは、ユーザーが指定した各サービスについて、Windows サービス コントローラーに開始メッセージを送ります。サービスが既に実行中の場合は、メッセージが無視されます。エラーにはなりません。サービスはサービス名または表示名で指定するか、InputObject パラメーターを使用して、開始するサービスを表すサービス オブジェクトを渡します。
パラメーター
-DisplayName <string[]>
開始するサービスの表示名を指定します。ワイルドカードを使用できます。
必須 |
true |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Exclude <string[]>
指定されたサービスを除外します。このパラメーターの値は、Name パラメーターを修飾します。"s*" などの名前要素またはパターンを入力します。ワイルドカードを使用できます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Include <string[]>
指定されたサービスだけを開始します。このパラメーターの値は、Name パラメーターを修飾します。"s*" などの名前要素またはパターンを入力します。ワイルドカードを使用できます。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-InputObject <ServiceController[]>
開始するサービスを表す ServiceController オブジェクトを指定します。オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByValue) |
ワイルドカード文字を許可する |
false |
-Name <string[]>
開始するサービスのサービス名を指定します。
パラメーター名は省略可能です。-Name またはそのエイリアスである -ServiceName を使用するか、パラメーター名を省略することができます。
必須 |
true |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
true (ByValue, ByPropertyName) |
ワイルドカード文字を許可する |
false |
-PassThru
サービスを表すオブジェクトを返します。既定では、このコマンドレットによる出力はありません。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-Confirm
コマンドを実行する前に確認メッセージを表示します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-WhatIf
実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。詳細については、次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
System.ServiceProcess.ServiceController, System.String パイプを使用して、サービスまたはサービス名を含む文字列を表すオブジェクトを Start-Service に渡すことができます。 |
出力 |
なし、または System.ServiceProcess.ServiceController PassThru パラメーターを使用すると、Start-Service はサービスを表す System.ServiceProcess.ServiceController オブジェクトを生成します。それ以外の場合、このコマンドレットによる出力はありません。 |
注
Start-Service は、その組み込みエイリアスである "sasv" で参照することもできます。詳細については、「about_Aliases」を参照してください。
Start-Service では、現在のユーザーに権限がある場合のみサービスを制御できます。コマンドが正常に機能しない場合は、必要な権限が与えられていない可能性があります。
システム上のサービスのサービス名と表示名を参照するには、「get-service」と入力します。サービス名は [Name] 欄に表示され、表示名は [DisplayName] 欄に表示されます。
開始できるサービスは、スタートアップの種類が [手動] または [自動] のサービスだけです。スタートアップの種類が [無効] のサービスは開始できません。"コンピューターでサービス <service-name> を開始できない" という内容のメッセージが表示されて Start-Service コマンドが失敗した場合は、Get-WmiObject コマンドを使用して、サービスのスタートアップの種類を確認します。その後、必要に応じて Set-Service コマンドを使用し、サービスのスタートアップの種類を変更してください。
Performance Logs and Alerts (SysmonLog) などいくつかのサービスは、処理しなければならない作業がないと自動的に停止します。Windows PowerShell がサービスを起動し、そのサービスがすぐに停止した場合、"サービス <表示名> を開始できませんでした。" というメッセージが表示されます。
例 1
C:\PS>start-service -name eventlog
説明
-----------
このコマンドを実行すると、ローカル コンピューターで EventLog サービスが開始されます。Name パラメーターを使用し、サービス名でサービスを識別しています。
例 2
C:\PS>start-service -displayname *remote* -whatif
説明
-----------
このコマンドを実行すると、表示名に "remote" が含まれるサービスを開始するとどうなるかが表示されます。DisplayName パラメーターを使用して、サービス名ではなく、表示名でサービスを指定します。また、WhatIf パラメーターを使用して、実際にコマンドを実行せずに、コマンドを実行するとどうなるかを表示しています。
例 3
C:\PS>$s = get-service wmi
C:\PS>start-service -InputObject $s -passthru | format-list >> services.txt
説明
-----------
これらのコマンドを実行すると、コンピューター上で Windows Management Instrumentation (WMI) サービスが開始され、動作の記録が services.txt ファイルに追加されます。最初のコマンドは、Get-Service コマンドレットを使用して、WMI サービスを表すオブジェクトを取得し、変数 $s に格納します。
2 番目のコマンドは、Start-Service コマンドレットを使用して、WMI サービスを開始します。InputObject パラメーターを使用し、WMI サービス オブジェクトが格納されている変数 $s を Start-Service に渡すことで、サービスを識別しています。次に、PassThru パラメーターを使用して、サービスの開始を表すオブジェクトを作成しています。このパラメーターがないと、Start-Service は何も出力しません。
パイプライン演算子 (|) により、Start-Service が作成したオブジェクトが Format-List コマンドレットに渡され、オブジェクトがプロパティのリストとして書式設定されます。追加リダイレクト演算子 (>>) により、出力が services.txt ファイルにリダイレクトされ、既存のファイルの最後に追加されます。
例 4
C:\PS># start-service
説明
-----------
この一連のコマンドは、サービスのスタートアップの種類が [無効] の場合にサービスを開始する方法を示しています。最初のコマンドは、Start-Service コマンドレットを使用して Telnet サービス (tlntsvr) を開始しようとしますが、失敗します。
C:\PS>start-service tlntsvr
Start-Service : 次のエラーのため、サービス 'Telnet (TlntSvr)' を開始できません: コンピューター '.' でサービス TlntSvr を開始できません。
行: 1 文字: 14
+ start-service <<<< tlntsvr
2 番目のコマンドは、Get-WmiObject コマンドレットを使用して、Tlntsvr サービスを取得しています。このコマンドは、StartMode フィールドにスタートアップの種類のプロパティを持つオブジェクトを取得します。表示結果から、Tlntsvr サービスのスタートアップの種類が [無効] になっていることがわかります。
C:\PS> get-wmiobject win32_service | where-object {$_.Name -eq "tlntsvr"}
ExitCode : 0
Name : TlntSvr
ProcessId : 0
StartMode : Disabled
State : Stopped
Status : OK
次のコマンドは、Set-Service コマンドレットを使用して、Tlntsvr サービスのスタートアップの種類を [手動] に変更しています。
C:\PS> set-service tlntsvr -startuptype manual
これで、Start-Service コマンドを再度実行できるようになります。今度はコマンドが成功します。
C:\PS> start-service tlntsvr
コマンドが成功したかどうかを確認するには、Get-Service を使用します。
関連項目
概念
Get-Service
Suspend-Service
Stop-Service
Restart-Service
Resume-Service
Set-Service
New-Service