Los servicios son una de las partes más importantes de los sistemas operativos. Hay diferentes herramientas y comandos para listar estos servicios. Powershell proporciona el commandlet Get-Service
para listar estos servicios y filtrarlos de acuerdo con el filtro proporcionado.
Empezaremos con un caso de uso simple en el que listaremos todos los servicios sin proporcionar una opción al comando Get-Service
. Esto listará el servicio existente actualmente con el estado de ejecución o detenido.
PS> Get-Service
Como podemos ver en la captura de pantalla los servicios están ordenados por nombre por defecto. La siguiente información se proporciona por defecto sobre los servicios listados.
-
Status
mostrará si el servicio esRunning
oStopped
-
Name
mostrará el nombre real y corto del servicio que es utilizado por los comandos. -
Display Name
mostrará el nombre extendido e informativo del servicio que es más amigable para las personas.
Lista de todos los servicios en el equipo o sistema remoto
Como Microsoft proporcionó el acceso remoto y la gestión de los sistemas remotos con powreshell podemos usar el comando Get-Service
para listar los servicios en los sistemas remotos. Proporcionaremos el -computername
del sistema remoto. Esto puede ser un nombre DNS que puede ser resuelto o una dirección IP a la que podemos acceder.
PS > Get-Service -computername DESKTOP-HQVAMA3
Lista de servicios con nombre especificado
Los sistemas operativos Windows tienen una gran cantidad de servicios que llenarán el terminal fácilmente. O podemos necesitar listar el nombre de un servicio específico proporcionando su nombre o alguna parte de su nombre. Simplemente proporcionaremos el nombre después del comando Get-Service
. También podemos utilizar el glob *
donde sólo se especificará una parte del nombre del servicio. En este ejemplo trataremos de listar el servicio WinDefend
proporcionando WinDef*
como nombre del servicio.
PS > Get-Service WinDef*
Lista sólo de servicios actualmente en ejecución
Hay dos estados principales de servicio en Windows. Running
o Stopped
. Podemos necesitar listar los servicios según su estado. Podemos usar el parámetro de objeto Status
como el que se muestra a continuación, que listará sólo los servicios en ejecución.
PS> Get-Service | Where-Object {$_.Status -eq "Running"}
Listará el servicio con el servicio dependiente
Los servicios son importantes y pueden estar vinculados y depender unos de otros. Antes de detenerlos podemos necesitar listar los servicios dependientes del servicio dado. Podemos utilizar las opciones -RequiredServices
para listar las dependencias de los servicios.
PS> Get-Service "WinDefend" -RequiredServices
Lista ordenada por estado (parado/en ejecución)
Puede que necesitemos comprobar la lista de servicios según su estado de ejecución y parado. Podemos ordenarlos usando Sort-Object
como se muestra a continuación.
PS> Get-Service | Sort-Object status
Escribir la lista de servicios en un archivo
Puede que necesitemos investigar la lista de servicios más tarde o simplemente queremos guardarlos en un archivo. Podemos utilizar el comando Out-File
que escribirá la lista de servicios en el archivo que queramos. En este ejemplo escribiremos en un archivo llamado Services.txt
PS> Get-Service | Out-File "C:\Users\İsmail Baydan\Desktop\Services.txt"