PowerShell Cmdlet - Get-Service
 記事記号:[mf1991] 初版:2011/Sep/30

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Get-Service
    
概要
    ローカルまたはリモート コンピューター上のサービスを取得します。
    
構文
    Get-Service [[-Name] <string[]>] [-ComputerName <string[]>] [-DependentServi
    ces] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<Commo
    nParameters>]
    
    Get-Service -DisplayName <string[]> [-ComputerName <string[]>] [-DependentSe
    rvices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<Co
    mmonParameters>]
    
    Get-Service [-InputObject <ServiceController[]>] [-ComputerName <string[]>] 
    [-DependentServices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredS
    ervices] [<CommonParameters>]
    
説明
    Get-Service コマンドレットは、実行中のサービスと停止中のサービスを含め、ロー
    カルまたはリモート コンピューター上のサービスを表すオブジェクトを取得します。
    
    サービス名またはサービスの表示名を指定することによって特定のサービスのみを取
    得するように Get-Service に指示することも、Get-Service に対してサービス オブ
    ジェクトをパイプ処理することもできます。
    
パラメーター
    -ComputerName <string[]>
        指定されたコンピューターで実行されているサービスを取得します。既定値はロ
        ーカル コンピューターです。
        
        リモート コンピューターの NetBIOS 名、IP アドレス、または完全修飾ドメイ
        ン名を入力します。ローカル コンピューターを指定するには、コンピューター
        名、ドット (.)、または「localhost」を入力します。
        
        このパラメーターは、Windows PowerShell リモート処理に依存しません。コン
        ピューターがリモート コマンドを実行するように構成されていない場合でも、G
        et-Service の ComputerName パラメーターを使用できます。
        
        必須                         false
        位置                         named
        既定値                       Localhost
        パイプライン入力を許可する   true (ByPropertyName)
        ワイルドカード文字を許可する false
        
    -DependentServices [<SwitchParameter>]
        指定されたサービスに依存するサービスのみを取得します。
        
        既定では!¢Get-Service はすべてのサービスを取得します。
        
        必須                         false
        位置                         named
        既定値                       False
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -DisplayName <string[]>
        取得するサービスの表示名を指定します。ワイルドカードを使用できます。既定
        では、Get-Service はコンピューター上のすべてのサービスを取得します。
        
        必須                         true
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Exclude <string[]>
        指定されたサービスを除外します。このパラメーターの値は、Name パラメータ
        ーを修飾します。"s*" などの名前要素またはパターンを入力します。ワイルド
        カードを使用できます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Include <string[]>
        指定したサービスだけを取得します。このパラメーターの値は、Name パラメー
        ターを修飾します。"s*" などの名前要素またはパターンを入力します。ワイル
        ドカードを使用できます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -InputObject <ServiceController[]>
        取得するサービスを表す ServiceController オブジェクトを指定します。オブ
        ジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンド
        または式を入力します。Get-Service に対してサービス オブジェクトをパイプ
        処理することもできます。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   true (ByValue)
        ワイルドカード文字を許可する false
        
    -Name <string[]>
        取得するサービスのサービス名を指定します。ワイルドカードを使用できます。
        既定では、Get-Service はコンピューター上のすべてのサービスを取得します。
        
        必須                         false
        位置                         1
        既定値                       
        パイプライン入力を許可する   true (ByValue, ByPropertyName)
        ワイルドカード文字を許可する true
        
    -RequiredServices [<SwitchParameter>]
        このサービスが必要とするサービスのみを取得します。
        
        このパラメーターは、サービスの ServicesDependedOn プロパティの値を取得し
        ます。既定では!¢Get-Service はすべてのサービスを取得します。
        
        必須                         false
        位置                         named
        既定値                       False
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help about_commonparameters」と入力してヘルプを参照してください。
    
入力
    System.ServiceProcess.ServiceController, System.String
        Get-Service に対してサービス オブジェクトまたはサービス名をパイプ処理す
        ることができます。
    
出力
    System.ServiceProcess.ServiceController
        Get-Service は、コンピューター上のサービスを表すオブジェクトを返します。
    
メモ
        Get-Service は、その組み込みエイリアスである "gsv" で参照することもでき
        ます。詳細については、「about_Aliases」を参照してください。
        
        Get-Service では、現在のユーザーにサービスを参照する権限がある場合のみサ
        ービスが表示されます。Get-Service でサービスが表示されない場合は、サービ
        スを参照する権限がない可能性があります。
        
        システム上の各サービスのサービス名と表示名を確認するには、「get-service」
        と入力します。サービス名は [Name] 欄に表示され、表示名は [DisplayName] 
        欄に表示されます。
        
        Status の値により昇順に並べ替えると、状態が "Stopped (停止済み)" のサー
        ビスは "Running (実行中)" のサービスの前に表示されます。サービスの Statu
        s プロパティは、状態の名前が整数値を表す列挙値です。並べ替えは名前ではな
        く整数値に基づいて行われます。"Stopped (停止済み)" の値は "1" であり、"R
        unning (実行中)" の値は "4" であるため、"Running" は "Stopped" の前に表
        示されます。
    
    -------------------------- 例 1 --------------------------
    
    C:\PS>get-service
    
    説明
    -----------
    このコマンドは、システム上のすべてのサービスを取得します。「get-service *」
    と入力した場合と同様に動作します。既定では、各サービスの状態、サービス名、表
    示名が表示されます。
    
    -------------------------- 例 2 --------------------------
    
    C:\PS>get-service wmi*
    
    説明
    -----------
    このコマンドは、"WMI" (Windows Management Instrumentation の頭字語) で始まる
    名前のサービスを取得します。
    
    -------------------------- 例 3 --------------------------
    
    C:\PS>get-service -displayname *network*
    
    説明
    -----------
    このコマンドを実行すると、表示名に "network" という単語が含まれるサービスが
    表示されます。表示名を検索することにより、xmlprov (Network Provisioning Serv
    ice) のようにサービス名に "Net" が含まれていない場合でも、ネットワーク関連の
    サービスを見つけることができます。
    
    -------------------------- 例 4 --------------------------
    
    C:\PS>get-service -name win* -exclude winrm
    
    説明
    -----------
    これらのコマンドを実行すると、WinRM サービスを除き、サービス名が "win" で始
    まるサービスだけが表示されます。
    
    -------------------------- 例 5 --------------------------
    
    C:\PS>get-service | where-object {$_.Status -eq "Running"}
    
    説明
    -----------
    このコマンドを実行すると、現在実行中のサービスだけが表示されます。これは、Ge
    t-Service コマンドレットを使用してコンピューター上のすべてのサービスを取得し
    ます。パイプライン演算子 (|) により、結果が Where-Object コマンドレットに渡
    され、Status プロパティの値が "Running" のサービスだけが選択されます。
    
    Status は、サービス オブジェクトの 1 つのプロパティにすぎません。すべてのプ
    ロパティを表示するには、「get-service | get-member」と入力します。
    
    -------------------------- 例 6 --------------------------
    
    C:\PS>get-service -computername Server02
    
    説明
    -----------
    このコマンドは、Server02 リモート コンピューター上のサービスを取得します。
    
    Get-Service の ComputerName パラメーターは Windows PowerShell のリモート処理
    を使用しないため、コンピューターが Windows PowerShell リモート処理用に構成さ
    れていない場合でも使用できます。
    
    -------------------------- 例 7 --------------------------
    
    C:\PS>get-service | where-object {$_.DependentServices} | format-list -prope
    rty 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 --------------------------
    
    C:\PS>C:\PS> 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
    
    C:\PS> get-service s* | sort-object status -descending
    
    Status   Name               DisplayName
    ------   ----               -----------
    Running  ShellHWDetection   Shell Hardware Detection
    Running  SharedAccess       Windows Firewall/Internet Connectio...
    Running  Spooler            Print Spooler
    Running  SSDPSRV            SSDP Discovery Service
    Running  srservice          System Restore Service
    Running  SCardSvr           Smart Card
    Running  SamSs              Security Accounts Manager
    Running  Schedule           Task Scheduler
    Running  SENS               System Event Notification
    Running  seclogon           Secondary Logon
    Stopped  SysmonLog          Performance Logs and Alerts
    Stopped  SwPrv              MS Software Shadow Copy Provider
    Stopped  stisvc             Windows Image Acquisition (WIA)
    
    説明
    -----------
    このコマンドは、Status プロパティの値によってサービスを昇順に並べ替える場合、
    停止済みのサービスは実行中のサービスの前に表示されることを示しています。これ
    は、Status の値が列挙型であり、"Stopped (停止済み)" の値は "1"、"Running (実
    行中)" の値は 4 であるためです。
    
    実行中のサービスを一覧で先に表示するには、Sort-Object コマンドレットの Desce
    nding パラメーターを使用します。
    
    -------------------------- 例 9 --------------------------
    
    C:\PS>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" コマ
    ンドを実行します。
    
    Get-Service コマンドはリモート コンピューター上で実行され、結果はローカル コ
    ンピューターに返されます。結果はパイプライン演算子 (|) によって Format-Table 
    コマンドレットに送られ、サービスは表形式に書式設定されます。Format-Table コマ
    ンドは Property パラメーターを使用して、MachineName プロパティなど、表に表示
    するプロパティを指定します。
    
    -------------------------- 例 10 --------------------------
    
    C:\PS>get-service winrm -requiredServices
    
    説明
    -----------
    このコマンドは、WinRM サービスが必要とするサービスを取得します。
    
    このコマンドは、サービスの ServicesDependedOn プロパティの値を返します。
    
    -------------------------- 例 11 --------------------------
    
    C:\PS>"winrm" | get-service
    
    説明
    -----------
    このコマンドは、ローカル コンピューター上の WinRM サービスを取得します。この
    例は、Get-Service に対してサービス名の文字列 (引用符内) をパイプ処理できるこ
    とを示しています。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113332
    Start-Service 
    Stop-Service 
    Restart-Service 
    Resume-Service 
    Suspend-Service 
    Set-Service 
    New-Service 
    	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Cmdlet、Get-Service
ご利用数: 1971748
感想・要望・問い合わせは こちら