Get-Service
ローカル コンピューターまたはリモート コンピューター上のサービスを取得します。
構文
Get-Service
[[-Name] <String[]>]
[-ComputerName <String[]>]
[-DependentServices]
[-RequiredServices]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Service
[-ComputerName <String[]>]
[-DependentServices]
[-RequiredServices]
-DisplayName <String[]>
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Service
[-ComputerName <String[]>]
[-DependentServices]
[-RequiredServices]
[-Include <String[]>]
[-Exclude <String[]>]
[-InputObject <ServiceController[]>]
[<CommonParameters>]
説明
Get-Service コマンドレットは、ローカル コンピューターまたはリモート コンピューター上のサービス (実行中のサービスや停止したサービスなど) を表すオブジェクトを取得します。
サービス名またはサービスの表示名を指定して特定のサービスのみを取得するようにこのコマンドレットを指示するか、サービス オブジェクトをこのコマンドレットにパイプできます。
例
例 1: コンピューター上のすべてのサービスを取得する
Get-Service
このコマンドは、コンピューター上のすべてのサービスを取得します。
Get-Service *
を入力したかのように動作します。
既定の表示には、各サービスの状態、サービス名、および表示名が表示されます。
例 2: 検索文字列で始まるサービスを取得する
Get-Service "wmi*"
このコマンドは、WMI (Windows Management Instrumentationの頭字語) で始まるサービス名を持つサービスを取得します。
例 3: 検索文字列を含むサービスを表示する
Get-Service -Displayname "*network*"
このコマンドは、ネットワークという単語を含む表示名でサービスを表示します。 表示名を検索すると、サービス名に「Net」が含まれていなくても、ネットワーク関連サービス(xmlprov (Network Provisioning Service))が見つかります。
例 4: 検索文字列と除外で始まるサービスを取得する
Get-Service -Name "win*" -Exclude "WinRM"
これらのコマンドは、WinRM サービスを除き、サービス名が win で始まるサービスのみを取得します。
例 5: 現在アクティブなサービスを表示する
Get-Service | Where-Object {$_.Status -eq "Running"}
このコマンドは、現在アクティブなサービスのみを表示します。 Get-Service コマンドレットを使用して、コンピューター上のすべてのサービスを取得します。 パイプライン演算子 (|) は結果を Where-Object コマンドレットに渡し、Status プロパティが Running と等しいサービスのみを選択します。
状態は、サービス オブジェクトの 1 つのプロパティのみです。
すべてのプロパティを表示するには、「Get-Service | Get-Member
」と入力します。
例 6: リモート コンピューターでサービスを取得する
Get-Service -ComputerName "Server02"
このコマンドは、Server02 リモート コンピューター上のサービスを取得します。
Get-Service の ComputerName パラメーターは Windows PowerShell リモート処理を使用しないため、コンピューターが Windows PowerShell でリモート処理用に構成されていない場合でも、このパラメーターを使用できます。
例 7: 依存サービスを持つローカル コンピューター上のサービスを一覧表示する
Get-Service |
Where-Object {$_.DependentServices} |
Format-List -Property Name, DependentServices, @{
Label="NoOfDependentServices"; Expression={$_.dependentservices.count}
}
Name : AudioEndpointBuilder
DependentServices : {AudioSrv}
NoOfDependentServices : 1
Name : Dhcp
DependentServices : {WinHttpAutoProxySvc}
NoOfDependentServices : 1
...
最初のコマンドでは、 Get-Service コマンドレットを使用して、コンピューター上のサービスを取得します。 パイプライン演算子 (|) は、サービスを Where-Object コマンドレットに送信し、 DependentServices プロパティが null でないサービスを選択します。
別のパイプライン オペレーターが結果を Format-List コマンドレットに送信します。 このコマンドは、 Property パラメータを使用して、サービスの名前、依存サービスの名前、および各サービスが持つ依存サービスの数を表示する計算プロパティを表示します。
例 8: プロパティ値でサービスを並べ替える
Get-Service "s*" | Sort-Object status
Status Name DisplayName
------ ---- -----------
Stopped stisvc Windows Image Acquisition (WIA)
Stopped SwPrv MS Software Shadow Copy Provider
Stopped SysmonLog Performance Logs and Alerts
Running Spooler Print Spooler
Running srservice System Restore Service
Running SSDPSRV SSDP Discovery Service
Running ShellHWDetection Shell Hardware Detection
Running Schedule Task Scheduler
Running SCardSvr Smart Card
Running SamSs Security Accounts Manager
Running SharedAccess Windows Firewall/Internet Connectio...
Running SENS System Event Notification
Running seclogon Secondary Logon
このコマンドは、 サービスを Status プロパティの値で昇順に並べ替えると、停止したサービスが実行中のサービスより前に表示されることを示しています。 これは、Status の値が列挙型であり、Stopped の値が 1 で、Running の値が 4 であるために発生します。
実行中のサービスを最初に一覧表示するには、Sort-Object コマンドレットの Descending パラメーターを使用します。
例 9: 複数のコンピューターでサービスを取得する
Get-Service -Name "WinRM" -ComputerName "localhost", "Server01", "Server02" |
Format-Table -Property MachineName, Status, Name, DisplayName -auto
MachineName Status Name DisplayName
------------ ------ ---- -----------
localhost Running WinRM Windows Remote Management (WS-Management)
Server01 Running WinRM Windows Remote Management (WS-Management)
Server02 Running WinRM Windows Remote Management (WS-Management)
このコマンドでは、 Get-Service コマンドレットを使用して、2 台のリモート コンピューターとローカル コンピューター ("localhost") で Get-Service Winrm コマンドを実行します。
コマンドはリモート コンピューターで実行され、結果はローカル コンピューターに返されます。 パイプライン演算子 (|) は、結果を Format-Table コマンドレットに送信し、サービスがテーブルとして書式設定されます。 Format-Table コマンドは、Property パラメータを使用して、MachineName プロパティなど、テーブルに表示されるプロパティを指定します。
例 10: サービスの依存サービスを取得する
Get-Service "WinRM" -RequiredServices
このコマンドは、WinRM サービスに必要なサービスを取得します。
このコマンドは、サービスの ServicesDependedOn プロパティの値を返します。
例 11: パイプライン 演算子を使用してサービスを取得する
"WinRM" | Get-Service
このコマンドは、ローカル コンピューター上の WinRM サービスを取得します。 この例では、サービス名文字列 (引用符で囲む) を Get-Service にパイプ処理できることを示しています。
パラメーター
-ComputerName
指定したコンピューターで実行されているサービスを取得します。 既定値はローカル コンピューターです。
リモート コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイン名 (FQDN) を入力します。 ローカル コンピューターを指定するには、コンピューター名、ドット (.)、または localhost を入力します。
このパラメーターは、Windows PowerShell リモート処理には依存しません。 Get-Service の ComputerName パラメーターは、コンピューターがリモート コマンドを実行するように構成されていない場合でも使用できます。
型: | String[] |
Aliases: | Cn |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-DependentServices
このコマンドレットは、指定されたサービスに依存するサービスのみを取得することを示します。
既定では、このコマンドレットはすべてのサービスを取得します。
型: | SwitchParameter |
Aliases: | DS |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DisplayName
取得するサービスの表示名を文字列配列として指定します。 ワイルドカードを使用できます。 既定では、このコマンドレットはコンピューター上のすべてのサービスを取得します。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Exclude
文字列配列として、このコマンドレットが操作から除外するサービスを指定します。 このパラメーターの値は、Name パラメーターを修飾します。 "s*" などの名前要素またはパターンを入力します。 ワイルドカードを使用できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-Include
文字列配列として、このコマンドレットが操作に含めるサービスを指定します。 このパラメーターの値は、Name パラメーターを修飾します。 "s*" などの名前要素またはパターンを入力します。 ワイルドカードを使用できます。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
-InputObject
取得するサービスを表す ServiceController オブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。 また、このコマンドレットにサービス オブジェクトをパイプすることもできます。
型: | ServiceController[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Name
取得するサービスのサービス名を指定します。 ワイルドカードを使用できます。 既定では、このコマンドレットはコンピューター上のすべてのサービスを取得します。
型: | String[] |
Aliases: | ServiceName |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | True |
-RequiredServices
このコマンドレットは、このサービスに必要なサービスのみを取得することを示します。
このパラメーターは、サービスの ServicesDependedOn プロパティの値を取得します。 既定では、このコマンドレットはすべてのサービスを取得します。
型: | SwitchParameter |
Aliases: | SDO, ServicesDependedOn |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | True |
入力
System.ServiceProcess.ServiceController, System.String
このコマンドレットには、サービス オブジェクトまたはサービス名をパイプ処理できます。
出力
このコマンドレットは、コンピューター上のサービスを表すオブジェクトを返します。
メモ
Get-Service は、組み込みのエイリアス "gsv" で参照することもできます。 詳細については、「about_Aliases」を参照してください。
このコマンドレットは、現在のユーザーがサービスを表示するアクセス許可を持っている場合にのみサービスを表示できます。 このコマンドレットでサービスが表示されない場合は、サービスを表示するアクセス許可がない可能性があります。
システム上の各サービスのサービス名と表示名を見つけるには、「Get-Service
」と入力します。
サービス名は [名前] 列に表示され、表示名は [DisplayName] 列に表示されます。
ステータス値の昇順でソートすると、「停止」したサービスが「実行中」のサービスの前に表示されます。 サービスの Status プロパティは、ステータスの名前が整数値を表す列挙値です。 並べ替えは、名前ではなく整数値に基づいています。 「Stopped」の値は「1」で、「Running」の値は「4」であるため、「Running」は「Stopped」の前に表示されます。