Servicios en PowerShell

Los servicios de Windows son administrables desde la consola services.msc. Desde allí podemos ver los servicios existentes, tomar acciones sobre ellos, (detener, iniciar, reiniciar...) y configurarlos, haciendo doble clic sobre ellos.

Además de la ventana de administración de servicios, desde donde se puede iniciar, detener o configurar un servicio, también podemos administrar servicios empleando PowerShell.

Obtener lista de servicios

PS> GetService

Obtener servicios dependientes o de los que depende un servicio

PS> GetService -name dhcp -DependentServices
PS> GetService -name dhcp -RequiredServices

Del siguiente modo podemos obtener todos los servicios que tienen servicios dependientes o que requieren la ejecución de otros servicios.

Get-Service -Name * | where {$_.RequiredServices -or $_.DependentServices} | Format-Table -Property Status, Name, RequiredServices, DependentServices -auto

Detener, iniciar, reiniciar o suspender un servicio

PS> Stop-Service -Name spooler
PS> Start-Service -Name spooler
PS> Suspend-Service -Name spooler
PS> Restart-Service -Name spooler

¿Qué haría el siguiente comando?

PS> Get-Service | Where-Object -FilterScript {$_.CanStop} | Restart-Service

Modificar algunos aspectos de los servicios

Con el cmdlet set-service se puede cambiar la descripción de un servicio, su nombre o bien su tipo de inicio, mediante los parámetros -description, -startup o -displayname. Por ejemplo:

Set-Service clipsrv -startuptype "manual"