ソフトウェア
 Computer >> コンピューター >  >> ソフトウェア >> ソフトウェア

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

画面上で動作しているアプリケーションは、Windows内部で行われている処理のほんの一部にすぎません。デバイスドライバーの管理からセキュリティの確保まで、数多くのバックグラウンドプロセスがWindows PCを正常に動かし続けています。

複数台のコンピューターを管理するシステム管理者にとって、こうした重要なサービスの状態を把握できることは不可欠です。タスクマネージャーを使う方法では時間がかかりすぎるうえ、スクリプトによる自動化もできません。

その解決策となるのがコマンドラインツールです。コマンドプロンプトやPowerShellを使えば、システム上で稼働しているMicrosoftサービスの状態を素早く把握でき、問題の診断も迅速に行えます。

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

Windows PowerShellほど柔軟で強力ではないものの、コマンドプロンプトは依然としてシステム管理者にとって優れたツールです。queryexコマンドを使えば、アクティブなサービスと無効化されたサービスの両方の状態を取得でき、taskkillコマンドで厄介なプロセスを終了させることもできます。

1. コマンドプロンプトを管理者として起動する

queryexコマンドを使用するには、コマンドプロンプトを管理者として実行します。スタートメニューで「cmd」と検索すればアプリを見つけられます。

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

2. sc queryexコマンドで全サービスを表示する

sc queryexコマンドにはさまざまな使い方があり、最もよく使われるパラメータは「type」と「state」です。たとえば、以下のコマンドを入力すると、すべてのWindowsサービスを表示できます。

sc queryex type=service state=all

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

3. サービス名だけを抽出して見やすくする

デフォルトの表示は情報量が多く、読み解きにくい場合があります。以下のコマンドを使えばサービス名だけを表示でき、リストがぐっと見やすくなります。

sc queryex type=service state=all | find /i "SERVICE_NAME:"

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

4. 停止中のサービスを確認する

デフォルトではアクティブなプロセスのみが表示されます。非アクティブなサービスを調べたい場合は、stateパラメータを変更しましょう。

sc queryex type=service state=inactive

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

5. 特定のサービスの状態を照会する

サービス名を指定して、特定のプロセスの状態を照会することもできます。バッチファイルを作成して多数のプロセスを一度にチェックできるため、システム管理者にとって非常に便利な機能です。以下はその例です。

sc query DeviceInstall

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

PowerShellでWindowsサービスを一覧表示する

PowerShellは、最新のWindows向けに設計された専用のコマンドラインシェルです。コマンド経由でOSのほぼすべてのコンポーネントにアクセスでき、Windowsサービスも例外ではありません。

PowerShellの最大の強みは自動化のしやすさにあります。すべてのPowerShellコマンドは複雑なスクリプトに組み込めるため、複数のPCに対するシステム管理タスクを手間なく設定できます。

1. PowerShellを管理者として起動する

まずPowerShellを開きます。スタートメニューで検索できますが、必ず昇格されたインスタンス(管理者として実行)を起動してください。

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

2. Get-Serviceコマンドレットで全サービスを表示する

PowerShellでWindowsサービスを一覧表示する最も基本的なコマンドがGet-Serviceです。コンピューター上のすべてのサービスと、その状態・名前が表示されます。ただし、サービスのリストはかなり長くなる点に注意が必要です。

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

3. 結果をテキストファイルに出力する

Get-Serviceを使用する際は、リストをテキストファイルにエクスポートしておくと便利です。パイプを使って次のように記述します。

Get-Service | Out-File "C:\logs\All_Services.txt"

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

4. 特定のサービスの状態を確認する

特定のサービスの状態を調べるには、Get-Serviceコマンドに続けてサービス名を指定します。名前をカンマで区切れば、複数のプロセスの状態を一度に要求することも可能です。

Get-Service CryptSvc, COMSysApp

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

5. Where-Objectでステータス別にフィルタリングする

パイプを使えば、Get-ServiceコマンドレットとWhere-Object関数を組み合わせて、Statusで結果を絞り込むこともできます。次のコマンドは、実行中のすべてのサービスを取得する例です。

Get-Service | Where-Object {$_.Status -EQ "Running"}

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

サービスの依存関係を確認する

複雑なプロセスは、相互に依存する複数のサービスに分割されています。そのため、特定のサービスの状態を確認するだけでは不十分なことが多く、そのサービスが依存しているサービスの状態も併せてチェックする必要があります。

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

Get-Service -Name CryptSvc -RequiredServices

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

同様に、特定のサービスに依存しているサービスの一覧を取得するには、-DependentServicesフラグを活用します。

Get-Service -Name CryptSvc -DependentServices

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

この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つのコマンドで実行可能です。サービスを停止する例は以下の通りです。

Stop-Service -Name Spooler

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

2. サービスを開始する

サービスの開始も、ほぼ同じ手順で行えます。

Start-Service -Name Spooler

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

3. サービスを再起動する

サービスが正常に動作していない場合は、再起動を試してみましょう。

Restart-Service -Name Spooler

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

4. サービスのプロパティを変更する

さらに、Set-Serviceコマンドレットを使えば、サービスのプロパティを変更できます。ここでは、Print Spoolerサービスの自動起動を無効化しています。

Set-Service 'Spooler' -StartupType Disabled

PowerShellとコマンドプロンプトでWindowsサービスを簡単に一覧表示する方法

Windowsサービスの一覧表示に最適な方法は?

Windows 10でもWindows Serverでも、すべてのWindowsサービスの一覧を表示できると何かと便利です。重要なシステム機能の問題を診断したり、不要なMicrosoftサービスを停止してパフォーマンスを向上させたりできます。

この目的において最良の選択肢はPowerShellです。コマンドプロンプトでもサービス一覧を取得できますが、PowerShellが提供する追加機能の方がはるかに有用です。

PowerShellのコマンドレットを使えば、Windowsプロセスのサービス状態を取得し、ステータスなどのパラメータでフィルタリングできます。依存関係にあるサービスの特定も簡単で、必要に応じて開始・停止することも可能です。

  1. Fitbit Pay完全ガイド:設定方法からお支払い・セキュリティ対策まで徹底解説

    Fitbitは、最も優れたスマートウェアラブルデバイスのひとつです。多彩なモデルと豊富な機能を備えており、その中でも人気の高い機能が「Fitbit Pay」です。Fitbit IonicやFitbit Versaに搭載されたNFC(近距離無線通信)チップにより、非接触決済に対応したあらゆる店舗で、腕時計をつけたまま支払いが可能になります。 この記事では、Fitbit Payの使い方をマスターできるよう、設定方法からセキュリティ対策まで完全ガイドとして詳しく解説します。 Fitbit Payとは? Fitbit Payは、デビットカードやクレジットカードをFitbit IonicおよびVersa

  2. PCの動作が遅いと感じたら?パフォーマンス診断とスピードアップの方法

    「最近、PCの動きがなんだか遅いな…」と感じたことはありませんか?パソコンの動作が遅くなる原因は実にさまざまです。本当に原因を突き止めるには、診断ツールを使ってチェックすることが不可欠です。それこそが、問題の根本にたどり着く唯一の方法といえます。このガイドでは、ベンチマークテスト(性能測定)の実施方法を解説するとともに、PCのパフォーマンスを改善するための具体的なヒントもご紹介します。Windowsリソースおよびパフォーマンスモニターで診断するWindowsにはパフォーマンスモニター(Performance Monitor)という診断ツールが標準で搭載されています。PCの動作状況をリアルタイム