9.13.2015

Obtener los servicios detenidos usando PowerShell

Desarrollando un aplicativo móvil que interactúa remotamente con algunas máquinas ejecutando Windows, me vi en la necesidad de buscar un comando PowerShell para obtener los servicios de las máquinas Windows que se encuentran detenidas. En este post vamos a ver como llevar a cabo esta tarea en PowerShell y como exportarlo a un archivo CSV.

El comando básico

El CmdLet para obtener los servicios de Windows se sumamente sencilla (como casi todo en PowerShell ). Ejecutando el comando get-service vamos a obtener la lista completa de servicios del sistema operativo, tal y como se ve en la siguiente pantalla.

image

Obtener los servicios que están detenidos

Ahora, para obtener los servicios que están detenidos, modificamos los parámetros del CmdLet de la siguiente forma:

image

En este caso utilizamos el filtro where-object el cual me permite filtrar los objetos que se pasan antes del “pipe” con el criterio a la derecha del filtro.

Exportar los resultados a un archivo CSV

Ahora bien, si queremos persistir la respuesta del comando escrito anteriormente debemos modificar el comando para que exporte los resultados a un archivo CSV – tal y como lo definimos a la hora de iniciar el post. El comando modificado se puede ver en la siguiente figura.

image

En este caso, utilizamos el el comando Export-CSV y le indicamos donde queremos el resultado. El archivo con el resultado de la ejecución del comando resulta un poco difícil de leer tal y como se ve en la siguiente figura.

image

Para hacerlo más legible, vamos a seleccionar las columnas que nos interesan del resultado para lo cual ejecutamos el mismo comando pero con las columnas deseadas como parámetro del comando, utilizando el CmdLet Select-Object.

image

El resultado lo podemos ver en la siguiente figura.

image

Etiquetas de Technorati: ,