Chapter 25. System Services

Introduction

As the support mechanism for many administrative tasks on Windows, managing and working with system services naturally fits into the administrator’s toolbox.

PowerShell offers a handful of cmdlets to help make working with system services easier: from listing services to lifecycle management and even to service installation.

List All Running Services

Problem

You want to see which services are running on the system.

Solution

To list all running services, use the Get-Service cmdlet:

PS > Get-Service

Status   Name                DisplayName
------   ----                -----------
Running  ADAM_Test           Test
Stopped  Alerter             Alerter
Running  ALG                 Application Layer Gateway Service
Stopped  AppMgmt             Application Management
Stopped  aspnet_state        ASP.NET State Service
Running  AudioSrv            Windows Audio
Running  BITS                Background Intelligent Transfer Ser...
Running  Browser             Computer Browser
(...)

Discussion

The Get-Service cmdlet retrieves information about all services running on the system. Because these are rich .NET objects (of the type System.ServiceProcess.ServiceController), you can apply advanced filters and operations to make managing services straightforward.

For example, to find all running services:

PS > Get-Service | Where-Object { $_.Status -eq "Running" } Status Name DisplayName ------ ---- ----------- Running ADAM_Test Test Running ALG Application Layer Gateway Service Running AudioSrv Windows Audio Running BITS Background Intelligent Transfer Ser... Running Browser Computer Browser Running COMSysApp ...

Get Windows PowerShell Cookbook, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.