ボーカルリムーバーオンライン無料

コマンドについて詳しく解説します

powershell001_s

  • WindowsのPowerShellを使って、サービスの一覧を取得したい
  • 開始状態のサービスの一覧を取得して、CSVファイルに出力したい

この記事では、以上の疑問にお答えします。

 

WindowsのPowerShellでは、起動しているサービスの状態を一括取得することが可能です。

このコマンドを使い、サービスの起動状態を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 は何かと使えます。 覚えておいて損はないかな、と。