Cómo enumerar todos los servicios de Windows usando PowerShell o la línea de comandos

Las aplicaciones en ejecución que ve en su pantalla son una fracción de lo que sucede en Windows . Desde la administración de controladores de dispositivos hasta la garantía de la seguridad, una serie de procesos en segundo plano mantienen una PC con Windows en funcionamiento .

Para cualquier administrador de sistemas que supervise varias computadoras, es importante poder ver el estado de estos servicios críticos. El enfoque del Administrador de tareas(Task Manager) es demasiado lento para esto y no puede automatizarlo con un script.

¿La solución? Herramientas de línea de comandos. Con el símbolo del sistema o PowerShell(Command Prompt or PowerShell) , puede obtener rápidamente una lectura de los servicios operativos de Microsoft que se ejecutan en un sistema, lo que lo ayuda a diagnosticar cualquier problema rápidamente. 

Listado de servicios de (Services)Windows en el símbolo del sistema(Command Prompt)

Si bien no es tan flexible ni tan potente como Windows PowerShell , el símbolo del sistema(the Command Prompt) sigue siendo una herramienta excelente para los administradores de sistemas. Puede usar el comando queryex para obtener el estado de los servicios activos y deshabilitados y luego usar el comando taskkill(use the taskkill command) para finalizar procesos molestos.

  1. Para usar el comando queryex, ejecute el símbolo del sistema(Command Prompt) como administrador(Administrator) . Puede encontrar la aplicación buscando cmd en el menú de inicio.

  1. Hay muchas formas de usar el comando sc queryex. Tipo y Estado(State) son los dos parámetros más utilizados. Por ejemplo, ingrese el siguiente comando para ver todos  los procesos de Windows :

sc queryex type=service state=all

  1. La vista predeterminada puede ser un poco abrumadora. Puede mostrar solo los nombres de los procesos para que la lista sea más fácil de analizar:

sc queryex type=service state=all | find /i “SERVICE_NAME:”

  1. De forma predeterminada, el comando enumera todos los procesos activos. Para buscar inactivos, modifique el parámetro de estado:

sc queryex type=service state=inactive

  1. También puede consultar el estado de un proceso específico por su nombre. Esto es increíblemente útil para los administradores de sistemas, ya que pueden configurar archivos por lotes para verificar muchos procesos a la vez. Aquí hay un ejemplo:

instalación de dispositivo de consulta sc(sc query DeviceInstall)

Listado de servicios de (Services)Windows en PowerShell

PowerShell está destinado a ser un shell de línea de comandos dedicado para Windows moderno . Como tal, brinda acceso a casi todos los componentes del sistema operativo a través de comandos, y los servicios de Windows no son una excepción.

La ventaja de PowerShell(PowerShell) es que puede automatizarlo fácilmente. Todos los comandos de PowerShell se pueden compilar en secuencias de comandos complejas, lo que le permite configurar tareas de administración del sistema en varias PC sin problemas.

  1. Comience(Start) abriendo PowerShell . Puedes buscarlo en el menú Inicio(Start Menu) ; solo asegúrese de ejecutar una instancia elevada (es decir, como administrador(Administrator) ).

  1. El comando más simple para enumerar los servicios de Windows en PowerShell es Get-Service . Muestra todos los servicios en su computadora, junto con su estado y nombres. El único problema es que la lista de servicios puede ser bastante larga.

  1. Al usar Get-Service , es una mejor idea exportar la lista a un archivo de texto. Puedes hacer esto usando tuberías, como esta:

Get-Service | Out-File “C:\logs\All_Services.txt”

  1. Para buscar el estado de un servicio específico, siga el comando Get-Service con el nombre del servicio. Puede solicitar el estado de múltiples procesos separando sus nombres con comas.

Obtener servicio CryptSvc, COMSysApp(Get-Service CryptSvc, COMSysApp)

  1. Las canalizaciones también se pueden usar para combinar el cmdlet Get-Service con la función (Get-Service)Where-Object y filtrar los resultados por Estado(Status) . El siguiente comando ilustra esto al obtener todos los servicios en ejecución(Running) :

Get-Service | Where-Object {$_.Status -EQ “Running”}

Comprobación de las dependencias del servicio

Cualquier proceso complejo se divide en múltiples servicios interdependientes. Esta es la razón por la que simplemente obtener el estado de un servicio en particular a menudo no es suficiente. También debe verificar el estado de los servicios de los que depende ese servicio.

  1. Para ver los servicios requeridos por un servicio en particular, use el indicador -RequiredServices con el cmdlet Get-Service . Aquí hay un ejemplo:

Obtener servicio -Nombre CryptSvc –RequiredServices(Get-Service -Name CryptSvc –RequiredServices)

  1. De manera similar, para obtener una lista de servicios que dependen de un servicio específico, aproveche el indicador -DependentServices .

Obtener servicio -Nombre CryptSvc -DependentServices(Get-Service -Name CryptSvc -DependentServices)

Estos dos indicadores son cruciales al escribir scripts para iniciar o detener automáticamente los servicios de Windows , ya que le brindan una forma de realizar un seguimiento de todos los servicios conectados con el servicio afectado.

Listado de servicios de (Services)Windows en equipos remotos(Remote)

El método de PowerShell no se limita a las computadoras locales. También puede usar el cmdlet Get-Service con la misma sintaxis descrita anteriormente para consultar los procesos de PC remotas. Simplemente(Just) agregue el indicador -ComputerName al final para especificar de qué computadora remota recuperar información. 

Aquí hay un ejemplo:

obtener servicio CryptSvc -ComputerName Workstation7(get-service CryptSvc -ComputerName Workstation7)

Administración de servicios de (Services)Windows en PowerShell

Obtener el estado de los servicios no es lo único que puede hacer en Windows PowerShell . Como un entorno de secuencias de comandos completo, proporciona alternativas de secuencias de comandos para todas las opciones  de GUI .

Los cmdlets de Powershell(Powershell) pueden detener, iniciar, reiniciar o incluso modificar servicios. Junto con los comandos Get-Service automatizados, los scripts de (Get-Service)PowerShell se pueden escribir para automatizar por completo las tareas diarias de administración del sistema.

  1. Además de consultar el estado de los servicios, también puede usar PowerShell para administrarlos. El inicio o la detención de servicios se pueden realizar con un solo comando, requiriendo solo el nombre del servicio. Por ejemplo, así es como puede detener un servicio:

Stop-Service -Cola de nombres(Stop-Service -Name Spooler)

  1. Iniciar un servicio es similar:

Servicio de inicio - Cola de nombres(Start-Service -Name Spooler)

  1. Si un servicio no funciona correctamente, también puede optar por reiniciarlo:

Servicio de reinicio -Cola de nombres(Restart-Service -Name Spooler)

  1. También existe el cmdlet Set-Service que se puede usar para cambiar las propiedades de un servicio. Aquí deshabilitamos el inicio automático del servicio Print Spooler :

Establecer servicio 'Spooler' - Tipo de inicio deshabilitado(Set-Service ‘Spooler’ -StartupType Disabled)

¿Cuál es la mejor manera de enumerar los servicios de (Services)Windows(List Windows) ?

Ya sea que esté ejecutando Windows 10 o Windows Server , puede ser útil poder ver una lista de todos los servicios de Windows . Puede diagnosticar problemas con funciones críticas del sistema o detener servicios de Microsoft innecesarios para mejorar el rendimiento.

Para este propósito, PowerShell es la mejor opción. Si bien puede obtener una lista de servicios en el símbolo del sistema(Command Prompt) , la funcionalidad adicional proporcionada por PowerShell es más útil.

Puede usar los cmdlets de PowerShell para obtener el estado del servicio de los procesos de Windows , filtrándolos por su estado u otros parámetros. (Windows)También es fácil determinar los servicios dependientes e iniciarlos o detenerlos según sea necesario.



About the author

Soy ingeniero de software con más de 10 años de experiencia en el campo de la ingeniería de Windows. Me especializo en el desarrollo de aplicaciones basadas en Windows, así como en hardware y controladores de sonido para el sistema operativo Windows de próxima generación de Microsoft, Windows 11. Mi experiencia en la creación de aplicaciones de Windows me convierte en un activo especialmente valioso para cualquier empresa que busque desarrollar productos tecnológicos innovadores.



Related posts