Cómo administrar los servicios de Windows con PowerShell?

Puedes administrar los servicios de Windows no sólo desde el snap-in services.msc o la herramienta de línea de comandos sc.exe, sino también utilizando PowerShell. En este artículo consideraremos diferentes escenarios de administración de servicios de Windows con PowerShell.

Cmdlets de PowerShell utilizados para administrar los servicios de Windows

Hay ocho cmdlets de servicio básicos para ver el estado de los servicios de Windows y administrarlos. Para obtener la lista completa de cmdlets de gestión de servicios, ejecute este comando:

Get-Help \*-Service

  • Get-Service – permite obtener los servicios de un equipo local o remoto tanto en estado de ejecución como de detención;
  • New-Service – crea un servicio. El cmdlet crea una nueva entrada para un servicio de Windows en el registro y en la base de datos de servicios;
  • Restart-Service – reinicia un servicio. El cmdlet envía el mensaje de reinicio a través del controlador de servicios de Windows;
  • Resume-Service – reanuda un servicio. El cmdlet envía un mensaje de reanudación al Administrador de servicios de Windows;
  • Set-Service – cambia la configuración de un servicio local o remoto, incluyendo su estado, descripción, nombre mostrado o modo de inicio. También puede utilizar este cmdlet para iniciar, detener o suspender un servicio;
  • Start-Service: inicia un servicio;
  • Stop-Service: detiene un servicio (el cmdlet envía un mensaje de detención al Administrador de servicios de Windows);
  • Suspend-Service: suspende un servicio. Un servicio suspendido sigue funcionando, pero no hace nada hasta que se reanuda utilizando (por ejemplo, con el cmdlet Resume-Service).

Puede obtener una descripción detallada y ejemplos de uso de un cmdlet concreto con Get-Help:

Get-Help Start-Service

¿Cómo comprobar el estado del servicio de Windows con Get-Service?

Se puede obtener la lista de servicios y su estado (Running/Stopped) en un equipo local o remoto utilizando el cmdlet Get-Service. El parámetro -Name permite seleccionar los servicios por su nombre. El nombre del servicio puede especificarse utilizando el carácter comodín *.

Si no conoce el nombre exacto del servicio, puede encontrarlo por su nombre mostrado utilizando el parámetro -DisplayName. Puede utilizar la lista de valores y comodines.

Utilice el cmdlet Get-Service con el parámetro -ComputerName para obtener el estado del servicio en un equipo remoto. Puede consultar el estado del servicio en varios equipos remotos a la vez especificando sus nombres separados por comas. Por ejemplo, el comando que se muestra a continuación obtiene el estado del servicio Spooler en los equipos remotos ny-prnt1 y ny-prnt2.

Get-Service spooler –ComputerName ny-prnt1,ny-prnt2

Status Name DisplayName------ ---- -----------Running spooler Print SpoolerStopped spooler Print Spooler

Para mostrar todas las propiedades de un servicio, utilice el cmdlet Select-Object:

Get-Service spooler | Select-Object *

El cmdlet Select-Object permite obtener propiedades específicas de un servicio. Por ejemplo, se desea ver el nombre, el estado y las opciones disponibles del servicio Spooler:

Get-Service Spooler | Select DisplayName,Status,ServiceName,Can*

El cmdlet Get-Service tiene dos parámetros que permiten ver las dependencias del servicio:

  • -DependentServices permite visualizar los servicios dependientes del servicio dado
  • -RequiredServices muestra los servicios de los que depende el servicio dado

El siguiente comando muestra los servicios necesarios para iniciar el servicio Spooler:

Get-Service –Name Spooler -RequiredServices

El siguiente comando muestra los servicios que dependen de Spooler:

Get-Service –Name Spooler -DependentServices

Deja una respuesta

Tu dirección de correo electrónico no será publicada.