画面に表示される実行中のアプリケーションは、 Windows(Windows)で発生していることのほんの一部です。デバイス ドライバーの管理からセキュリティの確保まで、一連のバックグラウンド プロセスによってWindows PC の機能が維持されます。
複数のコンピュータを監視するシステム管理者にとって、これらの重要なサービスのステータスを表示できることは重要です。タスク マネージャー(Task Manager)のアプローチはこれには遅すぎるため、スクリプトを使用して自動化することはできません。
ソリューション?コマンドライン ツール。コマンド プロンプトまたは PowerShell(Command Prompt or PowerShell)を使用すると、システムで実行されている運用中のMicrosoftサービスをすばやく読み取ることができ、問題を迅速に診断するのに役立ちます。
コマンド プロンプトでの(Command Prompt)Windows サービス(Services)の一覧表示
Windows PowerShellほど柔軟でも強力でもありませんが、コマンド プロンプト(the Command Prompt)はシステム管理者にとって優れたツールです。queryexコマンドを使用して、アクティブなサービスと無効なサービスの両方のステータスを取得してから、taskkill コマンドを使用して(use the taskkill command)厄介なプロセスを終了できます。
- queryex コマンドを使用するには、管理者(Administrator)としてコマンド プロンプト(Command Prompt)を実行します。スタート メニューで cmd を検索すると、アプリを見つけることができます。
- sc queryex コマンドの使用方法は多数あります。Type とStateは、最もよく使用される 2 つのパラメーターです。たとえば、次のコマンドを入力して、すべての Windowsプロセスを表示します。
sc queryex type=service state=all
- デフォルトのビューは少し圧倒される可能性があります。リストを解析しやすくするために、プロセスの名前だけを表示できます。
sc queryex type=service state=all | find /i “SERVICE_NAME:”
- デフォルトでは、コマンドはすべてのアクティブなプロセスを一覧表示します。非アクティブなものを探すには、状態パラメーターを変更します。
sc queryex type=service state=inactive
- 特定のプロセスのステータスを名前で照会することもできます。システム管理者はバッチ ファイルを設定して一度に多くのプロセスをチェックできるため、これは非常に便利です。次に例を示します。
sc クエリ DeviceInstall(sc query DeviceInstall)
PowerShellでの(PowerShell)Windows サービス(Services)の一覧表示
PowerShellは、最新の(PowerShell)Windows専用のコマンド ライン シェルとなることを意図しています。そのため、コマンドを使用してほぼすべてのオペレーティング システム コンポーネントにアクセスできます。Windowsサービスも例外ではありません。
PowerShellの利点は、簡単に自動化できることです。すべてのPowerShellコマンドは複雑なスクリプトにコンパイルできるため、複数の PC で手間をかけずにシステム管理タスクをセットアップできます。
- まず、 (Start)PowerShellを開きます。スタートメニュー(Start Menu)で検索できます。昇格されたインスタンスを実行することを確認してください (つまり、管理者(Administrator)として)。
- PowerShellで(PowerShell)Windowsサービスを一覧表示する最も簡単なコマンドはGet-Serviceです。コンピューター上のすべてのサービスが、そのステータスと名前とともに表示されます。唯一の問題は、サービスのリストがかなり長くなる可能性があることです。
- Get-Serviceを使用する場合は、リストをテキスト ファイルにエクスポートすることをお勧めします。次のように、パイプを使用してこれを行うことができます。
Get-Service | Out-File “C:\logs\All_Services.txt”
- 特定のサービスの状態を調べるには、Get-Serviceコマンドの後にサービスの名前を指定します。名前をコンマで区切ることにより、複数のプロセスのステータスを要求できます。
Get-Service CryptSvc、COMSysApp
- パイプを使用してGet-ServiceコマンドレットをWhere-Object関数と組み合わせ、 (Where-Object)Statusで結果をフィルター処理することもできます。次のコマンドは、すべての実行中(Running)のサービスを取得することでこれを示しています。
Get-Service | Where-Object {$_.Status -EQ “Running”}
サービスの依存関係の確認
複雑なプロセスは、相互に依存する複数のサービスに分割されます。これが、特定のサービスのステータスを取得するだけでは不十分な場合が多い理由です。サービスが依存しているサービスのステータスも確認する必要があります。
- 特定のサービスに必要なサービスを表示するには、 Get-Serviceコマンドレットで-RequiredServicesフラグを使用します。次に例を示します。
Get-Service -Name CryptSvc –RequiredServices
- 同様に、特定のサービスに依存するサービスのリストを取得するには、-DependentServicesフラグを利用します。
Get-Service -Name CryptSvc -DependentServices
これら 2 つのフラグは、影響を受けるサービスに接続されているすべてのサービスを追跡する方法を提供するため、Windowsサービスを自動的に開始または停止するスクリプトを作成する際に重要です。
リモート(Remote)コンピューター上のWindows サービス(Services)の一覧表示
PowerShellメソッドは、ローカル コンピューターに限定されません。上記と同じ構文でGet-Serviceコマンドレットを使用して、リモート PC のプロセスを照会することもできます。最後に -ComputerName(-ComputerName)フラグ(Just)を追加して、情報を取得するリモート コンピューターを指定します。
次に例を示します。
get-service CryptSvc -ComputerName Workstation7
PowerShellでの(PowerShell)Windows サービス(Services)の管理
Windows PowerShellでできることは、サービスの状態を取得することだけではありません。本格的なスクリプト環境として、すべてのGUIオプションに代替スクリプトを提供します。
Powershellコマンドレットは、サービスを停止、開始、再起動、または変更することさえできます。自動化されたGet-Serviceコマンドと組み合わせることで、PowerShellスクリプトを記述して、日常のシステム管理タスクを完全に自動化できます。
- サービスのステータスを照会するだけでなく、PowerShellを使用してサービスを管理することもできます。サービスの開始または停止は、サービスの名前のみを必要とする 1 つのコマンドで実行できます。たとえば、これはサービスを停止する方法です。
Stop-Service -Name Spooler
- サービスの開始も同様です。
Start-Service -Name Spooler
- サービスが正しく機能していない場合は、再起動することもできます。
Restart-Service -Name Spooler
- サービスのプロパティを変更するために使用できるSet-Serviceコマンドレットもあります。ここでは、Print Spoolerサービスの自動起動を無効にします。
Set-Service 'Spooler' -StartupType 無効(Set-Service ‘Spooler’ -StartupType Disabled)
Windowsサービスを(Services)リスト(List Windows) する最良の方法は何ですか?
Windows 10またはWindows Serverを実行しているかどうかに関係なく、すべてのWindowsサービスのリストを表示できると便利です。重要なシステム機能の問題を診断したり、不要な Microsoft サービスを停止してパフォーマンスを向上させたりできます。
この目的には、PowerShellが最適なオプションです。コマンド プロンプト(Command Prompt)でサービス リストを取得できますが、 PowerShellが提供する追加機能の方が便利です。
PowerShellコマンドレットを使用して、 Windowsプロセスのサービス ステータスを取得し、ステータスやその他のパラメーターでフィルター処理できます。また、依存するサービスを特定し、必要に応じて開始または停止することも簡単です。
How to List All Windows Services using PowerShell or Command Line
The running аpplications you see on your screen аre a fraction of what iѕ happening in Windows. From managing device drivers to ensuring security, a bunch of bаckground proсesses maintain a functioning Windows PC.
For any system administrator overseeing multiple computers, it is important to be able to view the status of these critical services. The Task Manager approach is too slow for this, and you cannot automate it with a script.
The solution? Command-line tools. Using the Command Prompt or PowerShell, you can quickly get a read on the operational Microsoft services running on a system, helping you diagnose any issues swiftly.
Listing Windows Services In the Command Prompt
While not as flexible or powerful as Windows PowerShell, the Command Prompt is still an excellent tool for system administrators. You can use the queryex command to get the status of both active and disabled services and then use the taskkill command to end pesky processes.
- To use the queryex command, run Command Prompt as an Administrator. You can find the app by searching cmd in the start menu.
- There are many ways of using the sc queryex command. Type and State are the two most commonly used parameters. For example, enter the following command to view all Windows processes:
sc queryex type=service state=all
- The default view can be a bit overwhelming. You can display just the names of processes to make the list easier to parse:
sc queryex type=service state=all | find /i “SERVICE_NAME:”
- By default, the command lists all active processes. To look for inactive ones, modify the state parameter:
sc queryex type=service state=inactive
- You can also query the status of a specific process by its name. This is incredibly useful for system administrators, as they can set up batch files to check many processes at once. Here’s an example:
sc query DeviceInstall
Listing Windows Services in PowerShell
PowerShell is meant to be a dedicated command-line shell for modern Windows. As such, it provides access to pretty much every operating system component through commands, and Windows services are no exception.
PowerShell’s advantage is that you can automate it easily. All PowerShell commands can be compiled into complex scripts, allowing you to set up system administration tasks on multiple PCs without hassle.
- Start by opening PowerShell. You can search for it in the Start Menu; just make sure to run an elevated instance (i.e., as an Administrator).
- The simplest command for listing Windows services on PowerShell is Get-Service. It shows all services on your computer, along with their status and names. The only problem is that the list of services can be pretty long.
- When using Get-Service, it is a better idea to export the list to a text file. You can do this using pipes, like this:
Get-Service | Out-File “C:\logs\All_Services.txt”
- To look up the status of a specific service, follow the Get-Service command with the name of the service. You can request the status of multiple processes by separating their names with commas.
Get-Service CryptSvc, COMSysApp
- Pipes can also be used to combine the Get-Service cmdlet with the Where-Object function and filter the results by Status. The following command illustrates this by getting all Running services:
Get-Service | Where-Object {$_.Status -EQ “Running”}
Checking Service Dependencies
Any complex process is split into multiple interdependent services. This is why simply getting the status of a particular service is often not enough. You also need to check the status of the services that service is dependent on.
- To view the services required by a particular service, use the -RequiredServices flag with the Get-Service cmdlet. Here’s an example:
Get-Service -Name CryptSvc –RequiredServices
- Similarly, to get a list of services that depend on a specific service, take advantage of the -DependentServices flag.
Get-Service -Name CryptSvc -DependentServices
These two flags are crucial in writing scripts to automatically start or stop Windows services, as they give you a way to keep track of all the services connected with the affected service.
Listing Windows Services On Remote Computers
The PowerShell method is not limited to local computers. You can use the Get-Service cmdlet with the same syntax described above to query the processes of remote PCs as well. Just append the -ComputerName flag at the end to specify which remote computer to retrieve information from.
Here’s an example:
get-service CryptSvc -ComputerName Workstation7
Managing Windows Services in PowerShell
Getting the status of services isn’t the only thing you can do in Windows PowerShell. As a full-fledged scripting environment, it provides script alternatives to all GUI options.
Powershell cmdlets can stop, start, restart, or even modify services. Paired with automated Get-Service commands, PowerShell scripts can be written to fully automate everyday system management tasks.
- In addition to querying the status of services, you can also use PowerShell to manage them. Starting or stopping services can be done with a single command, requiring only the name of the service. For example, this is how you can stop a service:
Stop-Service -Name Spooler
- Starting a service goes similarly:
Start-Service -Name Spooler
- If a service isn’t working correctly, you can also choose to restart it:
Restart-Service -Name Spooler
- There is also the Set-Service cmdlet that can be used to change the properties of a service. Here we disable the automatic startup of the Print Spooler service:
Set-Service ‘Spooler’ -StartupType Disabled
What Is the Best Way to List Windows Services?
Whether you are running Windows 10 or a Windows Server, being able to view a list of all Windows services can be handy. You can diagnose issues with critical system functions or stop unnecessary Microsoft services to improve performance.
For this purpose, PowerShell is the best option. While you can obtain a service list in Command Prompt, the additional functionality provided by PowerShell is more useful.
You can use PowerShell cmdlets to get the service status of Windows processes, filtering them by their status or other parameters. It is also easy to determine dependent services and start or stop them as required.