PowerShell: ConsoleGuiTools

ConsoleGuiTools contiene un par de herramientas gráficas para PowerShell muy potentes.

Out-ConsoleGridView – Puedes enviar objetos powershell a una ventana en forma de cuadrícula para filtrar y ordenar los datos de forma interactiva.

Show-ObjectTree – Hace lo mismo que Out-ConsoleGridView pero en este caso los datos del objeto se muestran en forma de árbol.

  • Funcionan en cualquier sistema operativo que admita PowerShell 7.2 o superior.
  • Se puede usar el ratón y el teclado para interactuar con la vista de cuadrícula o de árbol.
  • Incorpora una casilla para escribir el filtro a utilizar.
  • Es posible seleccionar varios elementos y enviarlos por el flujo de trabajo.
  • Se puede personalizar la ventana de vista de cuadrícula con los parámetros integrados.

¿Cómo se instala?

Abrimos una instancia de PowerShell 7.2 o superior y dentro tecleamos

Install-Module Microsoft.PowerShell.ConsoleGuiTools

¿Cómo se usa?

Podemos pasarle cualquier objeto como por ejemplo los procesos en ejecución:

Get-Process | Out-ConsoleGridView

O los servicios:

Get-Service | Out-ConsoleGridView

O un listado de ficheros recursivo desde la carpeta actual:

Get-ChildItem -Recurse | Out-ConsoleGridView

Quizás nos interese en forma de árbol para ver mejor las rutas:

Get-ChildItem -Recurse | Show-ObjectTree

O quizás queramos usar una variable para pasarle los datos y luego visualizar la variable:

$ficheros = Get-ChildItem -Recurse
$ficheros | Out-ConsoleGridView

O quizás queramos poner un título pasando el parámetro -Title e incluso que permita selección múltiple con el parámetro -OutputMode Multiple

Get-ChildItem -Recurse | Out-ConsoleGridView -Title "Listado de archivos" -OutputMode Multiple

O llevar el resultado de nuestra selección a un fichero de texto llamado test.txt

Get-ChildItem -Recurse | Out-ConsoleGridView -Title "Listado de archivos" -OutputMode Multiple | Out-File ./test.txt

O ver las propiedades de los procesos en ejecución en forma de árbol haciendo doble clic de ratón encima de cada proceso.

Get-Process | Show-ObjectTree

Podemos definir una función que finalice los procesos en ejecución

function finalizaproceso { Get-Process | Out-ConsoleGridView -OutputMode Single -Filter $args[0] | Stop-Process -Id {$_.Id} }

Así solo tenemos que escribir finalizaproceso nombre y se mostrará la cuadrícula a la espera de confirmación de finalización. Por ejemplo si tenemos abierto el notepad escribimos:

finalizaproceso note

Y se nos mostrará la ventana a espera de que seleccionemos y pulsemos enter para finalizar el proceso.

Hay muchas posibilidades, puedes explorarlas y dejar un comentario ;-).

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *