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-CimInstanceTlntsvr サービスの StartMode プロパティが Disabled であることを示しています。 コマンドレットは 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

入力

ServiceController

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

String

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

出力

None

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

ServiceController

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

メモ

PowerShell には、次のエイリアスが Start-Service含まれています。

  • Windows:
    • sasv

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

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