【Powershell勉強】開始状態のサービスのみ取得してCSVに出力する


powershell001_s

ちょっと久しぶりにPowershellのお勉強です。 Windowsのサービスで現在開始されている状態のサービスを出力して、CSVに吐き出すコマンドをまとめました。

スポンサードリンク

関連記事

全状態のサービスを出力

Powershellでは、現在のサービス状態を出力するには下記のコマンドを使います。

get-service

実行するとこのような感じ。 「Status」に状態が、「Name」がサービス名、「DisplayName」が表示名です。
2015-0319-163805

  • Running : サービス停止中
  • Stopped : サービス開始中

状態が「開始」のサービスのみを出力

続いて、状態が「開始」となっているサービスのみを出力する場合は下記を使います。

get-service | where-object {$_.Status -eq "Running"}

実行してみるとこう。 Runningのみが表示されていることがわかります。
2015-0319-163724

これは where-object コマンドで特定の状態のサービスのみを抽出するよう、Get-Serviceに指定していることになります。

停止中のみ出力したければ {$_.Status -eq “Stopped”} と記述してあげればでOK。

状態が「開始」のサービスのみを出力し、CSVにエクスポート

このコマンドだけだとコンソール画面上に表示するだけなので、CSVに出力して編集しやすい形にしましょう。 その場合のコマンドは下記の通り。

get-service | where-object {$_.Status -eq "Running"} | Export-Csv -encoding Default service.csv

Export-Csv コマンドを使って、さっきの出力内容をCSVにエクスポートします。 もちろんファイル名は任意の名前で指定できます。

デフォルトの状態では出力後になぜか文字化けしてしまうので -encoding Default のオプションを付け加えておくといい感じです。

まとめ

この記事で紹介した Where-ObjectExport-Csv は何かと使えます。 覚えておいて損はないかな、と。

 

 

スポンサードリンク

 

この記事が参考になったら、TipstourのFacebookページに『いいね!』をお願いします!

 

よろしければFeedlyもご登録ください!
follow us in feedly