PowerShell またはコマンド ラインを使用してすべての Windows サービスを一覧表示する方法


画面に表示される実行中のアプリケーションは、Windows で起こっていることのほんの一部です。デバイス ドライバーの管理からセキュリティの確保まで、一連のバックグラウンド プロセスが Windows PC の機能を維持します。

複数のコンピュータを管理するシステム管理者にとって、これらの重要なサービスのステータスを表示できることは重要です。タスク マネージャーのアプローチはこれには遅すぎるため、スクリプトで自動化することはできません。

解決策は?コマンドラインツール。 コマンドプロンプトまたはパワーシェル を使用すると、システム上で実行されている動作中の Microsoft サービスをすばやく読み取ることができ、問題を迅速に診断するのに役立ちます。

コマンド プロンプトでの Windows サービスの一覧表示

Windows PowerShell ほど柔軟性や強力ではありませんが、コマンドプロンプト は依然としてシステム管理者にとって優れたツールです。 queryex コマンドを使用すると、アクティブなサービスと無効なサービスの両方のステータスを取得し、taskkill コマンドを使用する して厄介なプロセスを終了できます。

  1. queryex コマンドを使用するには、管理者としてコマンド プロンプトを実行します。スタート メニューで cmd を検索すると、アプリを見つけることができます。
  2. sc queryex コマンドの使用方法は数多くあります。 Type と State は、最も一般的に使用される 2 つのパラメーターです。たとえば、すべての Windows プロセスを表示するには、次のコマンドを入力します。
  3. sc queryex type=service state=all

    1. デフォルトのビューは少し圧倒されるかもしれません。プロセスの名前だけを表示して、リストを解析しやすくすることができます。
    2. sc queryex type=service state=all | find /i “SERVICE_NAME:”

      1. デフォルトでは、このコマンドはアクティブなプロセスをすべてリストします。非アクティブなものを探すには、state パラメータを変更します。
      2. sc queryex type=service state=inactive

        1. 特定のプロセスのステータスを名前でクエリすることもできます。これは、多くのプロセスを一度にチェックするバッチ ファイルを設定できるため、システム管理者にとって非常に便利です。以下に例を示します。
        2. sc クエリ DeviceInstall

          PowerShell での Windows サービスの一覧表示

          .

          パワーシェル は、最新の Windows 専用のコマンド ライン シェルを意図しています。そのため、コマンドを通じてほとんどすべてのオペレーティング システム コンポーネントへのアクセスが可能になり、Windows サービスも例外ではありません。

          PowerShell の利点は、簡単に自動化できることです。すべての PowerShell コマンドは複雑なスクリプトにコンパイルできるため、複数の PC 上でシステム管理タスクを手間なく設定できます。

          1. まず、PowerShell を開きます。 [スタート] メニューで検索できます。必ず昇格されたインスタンスを (管理者として) 実行してください。
            1. PowerShell で Windows サービスを一覧表示する最も簡単なコマンドは、Get-Service です。コンピューター上のすべてのサービスとその状態および名前が表示されます。唯一の問題は、サービスのリストがかなり長くなる可能性があることです。
              1. Get-Service を使用する場合は、リストをテキスト ファイルにエクスポートすることをお勧めします。これは、次のようにパイプを使用して行うことができます。
              2. Get-Service |出力ファイル「C:\logs\All_Services.txt」

                1. 特定のサービスのステータスを検索するには、Get-Service コマンドにサービス名を指定します。名前をカンマで区切ることで、複数のプロセスのステータスをリクエストできます。
                2. Get-Service CryptSvc、COMSysApp

                  1. パイプを使用して、Get-Service コマンドレットと Where-Object 関数を組み合わせて、結果をステータスでフィルタリングすることもできます。次のコマンドは、実行中のサービスをすべて取得することでこれを示しています。
                  2. Get-Service | Where-Object {$_.Status -EQ "Running"}

                    サービスの依存関係の確認

                    複雑なプロセスは、相互に依存する複数のサービスに分割されます。多くの場合、特定のサービスのステータスを取得するだけでは十分ではないのはこのためです。また、そのサービスが依存しているサービスのステータスを確認する必要もあります。

                    1. 特定のサービスに必要なサービスを表示するには、Get-Service コマンドレットで -RequiredServices フラグを使用します。以下に例を示します。
                    2. .

                      Get-Service -Name CryptSvc –RequiredServices

                      1. 同様に、特定のサービスに依存するサービスのリストを取得するには、-DependentServices フラグを利用します。
                      2. Get-Service -Name CryptSvc -DependentServices

                        これら 2 つのフラグは、影響を受けるサービスに接続されているすべてのサービスを追跡する方法を提供するため、Windows サービスを自動的に開始または停止するスクリプトを作成する際に非常に重要です。

                        リモート コンピュータ上の Windows サービスの一覧表示

                        PowerShell メソッドはローカル コンピューターに限定されません。上記と同じ構文で Get-Service コマンドレットを使用して、リモート PC のプロセスをクエリすることもできます。最後に -ComputerName フラグを追加して、情報を取得するリモート コンピュータを指定するだけです。

                        これが例です:

                        get-service CryptSvc -ComputerName Workstation7

                        PowerShell での Windows サービスの管理

                        Windows PowerShell で実行できるのは、サービスの状態を取得することだけではありません。本格的なスクリプト環境として、すべての GUI オプションに代わるスクリプトを提供します。

                        Powershell コマンドレットは、サービスを停止、開始、再起動したり、変更したりすることもできます。自動化されたGet-Service コマンドと組み合わせることで、PowerShell スクリプトを作成して日常のシステム管理タスクを完全に自動化できます。

                        1. サービスのステータスをクエリするだけでなく、PowerShell を使用してサービスを管理することもできます。サービスの開始または停止は 1 つのコマンドで実行でき、必要なのはサービスの名前だけです。たとえば、次のようにしてサービスを停止できます。
                        2. Stop-Service -Name Spooler

                          1. サービスの開始も同様に行われます。
                          2. Start-Service -Name Spooler

                            1. サービスが正しく動作していない場合は、サービスを再起動することもできます。
                            2. Restart-Service -Name Spooler

                              1. サービスのプロパティを変更するために使用できる Set-Service コマンドレットもあります。ここでは、Print Spooler サービスの自動起動を無効にします。
                              2. .

                                Set-Service ‘Spooler’ -StartupType が無効です

                                Windows サービスを一覧表示する最良の方法は何ですか?

                                Windows 10 を実行している場合でも、Windows Server を実行している場合でも、すべての Windows サービスのリストを表示できると便利です。重要なシステム機能または 不要な Microsoft サービスを停止する に関する問題を診断して、パフォーマンスを向上させることができます。

                                この目的には、PowerShell が最適なオプションです。コマンド プロンプトでサービス リストを取得できますが、PowerShell によって提供される追加機能の方が便利です。

                                PowerShell コマンドレットを使用すると、Windows プロセスのサービス ステータスを取得し、ステータスやその他のパラメータでフィルタリングできます。また、依存するサービスを特定し、必要に応じて開始または停止することも簡単です。

                                .

                                関連記事:


                                26.06.2022