Start-Service

停止しているサービスを 1 つ以上開始します。

構文

Start-Service
     [-InputObject] <ServiceController[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-Name] <String[]>
     [-PassThru]
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Start-Service
     [-PassThru]
     -DisplayName <String[]>
     [-Include <String[]>]
     [-Exclude <String[]>]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

説明

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

コマンドレットは Start-Service 、指定されたサービスごとに Windows サービス コントローラーに開始メッセージを送信します。 サービスが既に実行中の場合は、メッセージが無視されます。エラーにはなりません。 サービス名または表示名でサービスを指定することも、 InputObject パラメーターを使用して、開始するサービスを表すサービス オブジェクトを指定することもできます。

例 1: その名前を使用してサービスを開始する

次の使用例は、ローカル コンピューターで EventLog サービスを開始します。 Name パラメーターは、サービス名によってサービスを識別します。

Start-Service -Name "eventlog"

例 2: サービスを開始せずに情報を表示する

この例では、"remote" を含む表示名を持つサービスを開始した場合の動作を示します。

Start-Service -DisplayName *remote* -WhatIf

DisplayName パラメーターは、サービス名ではなく表示名でサービスを識別します。 WhatIf パラメーターを指定すると、コマンドの実行時に何が起こるかをコマンドレットに表示しますが、変更は行いません。

例 3: サービスを開始し、テキスト ファイルにアクションを記録する

次の使用例は、コンピューター上で Windows Management Instrumentation (WMI) サービスを開始し、services.txt ファイルにアクションのレコードを追加します。

$s = Get-Service wmi
Start-Service -InputObject $s -PassThru | Format-List >> services.txt

最初に、WMI サービスを表すオブジェクトを取得し、変数に$s格納するために使用Get-Serviceします。 次に、サービスを開始します。 PassThru パラメーターがないと、Start-Service出力は作成されません。 パイプライン演算子 (|) は、オブジェクトの出力 Start-Service をコマンドレットに Format-List 渡して、オブジェクトをプロパティの一覧として書式設定します。 追加リダイレクト演算子 (>>) は、出力をservices.txt ファイルにリダイレクトします。 出力は、既存のファイルの末尾に追加されます。

例 4: 無効なサービスを開始する

この例では、サービスの開始の種類が [無効] のときにサービスを開始する方法を示します。

PS> Start-Service tlntsvr
Start-Service : Service 'Telnet (TlntSvr)' cannot be started due to the following error: Cannot start service TlntSvr on computer '.'.
At line:1 char:14
+ Start-Service  <<<< tlntsvr

PS> Get-CimInstance win32_service | Where-Object Name -eq "tlntsvr"
ExitCode  : 0
Name      : TlntSvr
ProcessId : 0
StartMode : Disabled
State     : Stopped
Status    : OK

PS> Set-Service tlntsvr -StartupType manual
PS> Start-Service tlntsvr

Telnet サービス (tlntsvr) を最初に開始しようとすると失敗します。 このコマンドは Get-CimInstance 、Tlntsvr サービスの StartMode プロパティが 無効であることを示しています。 コマンドレットは Set-Service 、開始の種類を 手動に変更します。 これで、コマンドを Start-Service 再送信できます。 今度はコマンドが成功します。 コマンドが成功したことを確認するには、次を実行 Get-Serviceします。

パラメーター

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DisplayName

開始するサービスの表示名を指定します。 ワイルドカード文字を使用できます。

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:True

-Exclude

このコマンドレットで省略されるサービスを指定します。 このパラメーターの値は 、Name パラメーターの対象になります。 name 要素やパターンを入力します (例: s*. ワイルドカード文字を使用できます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

このコマンドレットが開始するサービスを指定します。 このパラメーターの値は 、Name パラメーターの対象になります。 name 要素やパターンを入力します (例: s*. ワイルドカード文字を使用できます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

開始するサービスを表す ServiceController オブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。

Type:ServiceController[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

開始するサービスのサービス名を指定します。

パラメーター名は省略可能です。 Name またはその別名 ServiceName を使用することも、パラメーター名を省略することもできます。

Type:String[]
Aliases:ServiceName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

System.ServiceProcess.ServiceController, System.String

サービス名を含むサービスまたは文字列を表すオブジェクトをこのコマンドレットにパイプできます。

出力

None, System.ServiceProcess.ServiceController

このコマンドレットは、PassThru を指定した場合に、サービスを表す System.ServiceProcess.ServiceController オブジェクトを生成します。 それ以外の場合、このコマンドレットによる出力はありません。

メモ

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

  • 組み込みのエイリアスsasvで参照Start-Serviceすることもできます。 詳細については、「 about_Aliases」を参照してください。
  • Start-Service は、現在のユーザーがこれを行うアクセス許可を持っている場合にのみ、サービスを制御できます。 コマンドが正常に機能しない場合は、必要なアクセス許可が与えられていない可能性があります。
  • システム上のサービス名と表示名を検索するには、「.」と入力します Get-Service。 サービス名は [名前] 列に表示され、表示名は DisplayName 列に表示されます。
  • 開始タイプが手動、自動、または自動 (遅延開始) のサービスのみを開始できます。 開始の種類が [無効] のサービスを開始することはできません。 コマンドが Start-Service メッセージ Cannot start service \<service-name\> on computerで失敗した場合は、 Get-CimInstance サービスの開始の種類を検索し、必要に応じてコマンドレットを Set-Service 使用してサービスの開始の種類を変更します。
  • Performance Logs and Alerts (SysmonLog) などのいくつかのサービスは、処理しなければならない作業がないと自動的に停止します。 PowerShell は、ほぼ直ちに停止するサービスを開始すると、次のメッセージが表示されます。 Service \<display-name\> start failed.