この記事は以前に 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コマンドレットについて説明したいと思います
コメント