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


Las aplicaciones en ejecución que ves en tu pantalla son una fracción de lo que sucede en Windows. Desde administrar los controladores de dispositivos hasta garantizar 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 es demasiado lento para esto y no se puede automatizar con un script.

¿La solución? Herramientas de línea de comandos. Con Símbolo del sistema o Potencia Shell, puede obtener una lectura rápida de los servicios operativos de Microsoft que se ejecutan en un sistema, lo que le ayudará a diagnosticar cualquier problema rápidamente.

Listado de servicios de Windows en el símbolo del sistema

Aunque no es tan flexible ni potente como Windows PowerShell, el símbolo del sistema sigue siendo una excelente herramienta para los administradores de sistemas. Puede utilizar el comando queryex para obtener el estado de los servicios activos y deshabilitados y luego usa el comando taskkill para finalizar procesos molestos.

  1. Para utilizar el comando queryex, ejecute el símbolo del sistema como administrador. Puedes encontrar la aplicación buscando cmd en el menú de inicio.
    1. Hay muchas formas de utilizar el comando sc queryex. Tipo y Estado son los dos parámetros más utilizados. Por ejemplo, introduzca el siguiente comando para ver todos los procesos de Windows:
    2. sc queryex tipo=estado del servicio=todo

      1. La vista predeterminada puede resultar un poco abrumadora. Puede mostrar solo los nombres de los procesos para que la lista sea más fácil de analizar:
      2. sc queryex tipo=estado del servicio=todo | busque /i “NOMBRE_SERVICIO:”

        1. De forma predeterminada, el comando enumera todos los procesos activos. Para buscar inactivos, modifique el parámetro de estado:
        2. sc queryex tipo=estado del servicio=inactivo

          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. He aquí un ejemplo:
          2. sc consulta DeviceInstall

            Listado de servicios de Windows en PowerShell

            .

            Potencia Shell está destinado a ser un shell de línea de comandos dedicado para Windows moderno. Como tal, proporciona acceso a prácticamente todos los componentes del sistema operativo mediante comandos, y los servicios de Windows no son una excepción.

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

            1. Comience abriendo PowerShell. Puedes buscarlo en el menú Inicio; solo asegúrese de ejecutar una instancia elevada (es decir, como administrador).
              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 utilizar Get-Service , es una mejor idea exportar la lista a un archivo de texto. Puedes hacer esto usando tuberías, como esta:
                2. Obtener servicio | Archivo de salida “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. Puedes solicitar el estado de múltiples procesos separando sus nombres con comas.
                  2. Obtener servicio CryptSvc, COMSysApp

                    1. Las canalizaciones también se pueden utilizar para combinar el cmdlet Get-Service con la función Where-Object y filtrar los resultados por estado. El siguiente comando ilustra esto obteniendo todos los servicios en ejecución:
                    2. Obtener servicio | Objeto-Dónde {$_.Status -EQ “Running”}

                      Comprobación de dependencias del servicio

                      Cualquier proceso complejo se divide en múltiples servicios interdependientes. Esta es la razón por la que a menudo no basta con obtener el estado de un servicio en particular. 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, utilice el indicador -RequiredServices con el cmdlet Get-Service . He aquí un ejemplo:
                      2. .

                        Obtener-Servicio -Nombre CryptSvc –RequiredServices

                        1. Del mismo modo, para obtener una lista de servicios que dependen de un servicio específico, aproveche la marca -DependentServices .
                        2. Obtener-Servicio -Nombre CryptSvc -DependentServices

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

                          Listado de servicios de Windows en ordenadores remotos

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

                          Aquí tienes un ejemplo:

                          obtener-servicio CryptSvc -ComputerName Workstation7

                          Administrar servicios de Windows en PowerShell

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

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

                          1. Además de consultar el estado de los servicios, también puede utilizar PowerShell para administrarlos. Iniciar o detener servicios se puede realizar con un solo comando y solo requiere el nombre del servicio. Por ejemplo, así es como puedes detener un servicio:
                          2. Detener-Servicio - Cola de nombres

                            1. Iniciar un servicio es similar:
                            2. Servicio de inicio - Cola de nombres

                              1. Si un servicio no funciona correctamente, también puedes optar por reiniciarlo:
                              2. Servicio de reinicio - Cola de nombres

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

                                  Establecer servicio 'Spooler' -StartupType deshabilitado

                                  ¿Cuál es la mejor manera de enumerar los servicios de Windows?

                                  Ya sea que esté ejecutando Windows 10 o Windows Server, puede resultar útil poder ver una lista de todos los servicios de Windows. Puede diagnosticar problemas con funciones críticas del sistema o detener los servicios innecesarios de Microsoft 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, la funcionalidad adicional proporcionada por PowerShell es más útil.

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

                                  .

                                  Artículos Relacionados:


                                  26.06.2022