特定条件でデータを抽出する Where-Object(PowerShell入門)

この記事は以前に http://blog.hiros-dot.net/ に書いたものです。

Where-Objectコマンドレットを使用すると、特定条件でデータを抽出することができます。

今回は、このWhere-Objectコマンドレットを使用して、自PCのサービスが停止しているものだけを抽出してみたいと思います。

まずは、自PC内のサービスを取得する方法ですが、これにはGet-Serviceコマンドレットを実行します。

PS C:\Work> Get-Service
Status   Name               DisplayName
------   ----               -----------
Running  AeLookupSvc        Application Experience
Stopped  ALG                Application Layer Gateway Service
Running  AppHostSvc         Application Host Helper Service
Running  Appinfo            Application Information
Stopped  aspnet_state       ASP.NET State Service
Running  AudioEndpointBu... Windows Audio Endpoint Builder
Running  Audiosrv           Windows Audio
Running  BFE                Base Filtering Engine
Running  bgsvcg             B's Recorder GOLD General Service
Running  BITS               Background Intelligent Transfer Ser...
:
:長いので省略

上記結果からわかるように、Statusが"Stopped"のものがサービスが停止している項目です。

抽出したいデータは Statusが"Stopped"のものなので

PS C:\Work> Get-Service | Where-Object { $_.Status -eq "Stopped" }

と記述します。$_ は前回も説明したように、パイプで受け取ったオブジェクトが格納されている特殊な変数です。

「Status が "Stopped"に等しい」を $_.Status = "Stopped" と書かないように注意してください。

(=は代入を意味する演算子なので、エラーになってしまいます。)

実行結果は下記のようになります。

PS C:\Work> Get-Service | Where-Object { $_.Status -eq "Stopped" }
Status   Name               DisplayName
------   ----               -----------
Stopped  ALG                Application Layer Gateway Service
Stopped  aspnet_state       ASP.NET State Service
Stopped  CertPropSvc        Certificate Propagation
Stopped  clr_optimizatio... Microsoft .NET Framework NGEN v2.0....
Stopped  COMSysApp          COM+ System Application
Stopped  DFSR               DFS Replication
Stopped  dot3svc            Wired AutoConfig
Stopped  EapHost            Extensible Authentication Protocol
Stopped  ehRecvr            Windows Media Center Receiver Service
Stopped  ehSched            Windows Media Center Scheduler Service
Stopped  ehstart            Windows Media Center Service Launcher
Stopped  FontCache3.0.0.0   Windows Presentation Foundation Fon...
:
:長いので省略

次回はグルーピングを行うGroup-Objectコマンドレットについて説明したいと思います

コメント

タイトルとURLをコピーしました