Aprender PowerShell paso a paso – III

Escrito por Saul Da Silva

14/02/2018

Y Seguimos con mas de PowerShell en esta nueva entrada vamos a ver mas cmdlets, canalización de objetos y formateo de salida de datos, bueno manos a la obra!

Mostrar información y resultados en PowerShell

Los resultados que puedes obtener a través del PowerShell pueden ser presentados de modo que su interpretación sea mas fácil. Uno de los CMDLETS que los administradores siempre utilizamos es Get-Process, pues este comando muestra los procesos en ejecución en nuestro servidor o cliente.

PowerShell get-process Cmdlet

 

Canalización de Objetos

En PowerShell se canalizan los objetos como si de una serie de tubos interconectados se tratase. Los elementos que decidas desplazar por la canalización pasaran a través de cada tubo. Usando el operador de canalización “|” y el resultado de cada operación se utiliza como entrada de la siguiente.

Get-Process | ConvertTo-HTML | Out-File “Resultados.html”

Debemos acostumbrarnos en PowerShell a usar el canalizador para todo y reutilizar los resultados de un cmdlet y reintroducirlos en otro en el comando anterior obtenemos lo procesos del sistema luego usamos la función de PowerShell ConvertTo-HTML para convertir el resultado a HTML y usamos el Cmdlet Out-File que nos permite enviar el resultado a un archivo que hemos llamado «Resultados.html»

Cmdlets Out

Algunos cmdlets nos dan salidas de datos increíbles y para representarlos tenemos los cmdlets out los cuales podemos consultar usando el comodin «*»

Get-command out*

Como pueden ver en la imagen este comando te muestra todos los cmdlets Out disponibles en el sistema.

  • Out-Default  Envia los datos a la salida por defecto
  • Out-File  Envia la salida a un archivo
  • Out-GridView  Envia la salida a una tabla interactiva en una ventana separada
  • Out-Host  Envia la salida a la línea de comandos
  • Out-Null  No muestra la salida.
  • Out-Printer  Envia la salida a una impresora
  • Out-String  Envia la salida a una serie de Strings

También para los que estáis habituados a usar el CMD podemos usar el viejo “>” y “>>” para grabar los resultados de un cmdlet en un fichero siguiendo la misma lógica.

  • Get-Process > resultados.txt  (Para crear el archivo y grabar)
  • Get-Process >> resultados.txt (Para agregar información al final del archivo existente)

 

Cmdlets de Formato para presentar resultados

En PowerShell disponemos de una serie de CMDLETS que nos permiten controlar que propiedades mostramos de ciertos objetos. Estos CMDLETS comienzan por el verbo Format.

Los Cmdlets Format son:

Hablaremos de Format-Wide, Format-List, Format-Table. Cada uno de estos comandos a excepción de Format-Wide permiten definir diversas propiedades.

Utilizaremos como ejemplo el cmdlet: Get-Process –name Explorer

Si usamos el cmdLet Format-Wide solo veremos la propiedad predeterminada del objeto en una sola columna. Pero también puedes especificar otra propiedad usando –Property <propiedad>

Get-Process – Name Explorer | Format-Wide –Property Id

Usemos ahora Format-List para mostrar los resultados en una lista y vamos a definir varias propiedades en simultaneo para ver los resultados.  Vamos a obtener mas datos sobre el proceso Explorer.

Get-Process –Name Explorer | Format-List -Property Id,Name,FileVersion,StartTime,Id,Cpu

 

Format-Table para mostrar resultados con formato de tabla

El cmdlet Format-Table para nuestro comando Get-Process no es el mejor ejemplo ya que la salida de ese comando se muestra normalmente en formato de tabla.  Este comando te mostrara los datos en filas y columnas. Por ejemplo formateemos la salida del cmdlet Get-ChildItem (Comando DIR de nuestro antiguo CMD) para el directorio C:\WINDOWS

Get-ChildItem C:\Windows | Format-Table

Mientras que si incluimos el comando –AutoSize, vemos que se reducen las distancias entre las columnas.

Usando la tecla TAB puedes ver todos los parámetros disponibles del cmdlet.

Format-Wide ajusta los resultados a la pantalla

El cmdlet Format-Wide comprime la salida para ajustarse a lo ancho de la pantalla

Get-ChildItem C:\Windows | Format-Wide

 

Agrupemos objetos con Group-Object

El cmdlet Group-Object nos permite formatear la salida de manera agrupada. Por ejemplo usemos el siguiente cmdlet para saber cuantos ficheros tenemos agrupados por extensión.

Get-ChildItem C:\Windows | Group Extension -NoElement | Sort Count –Descending

Dejamos hasta aquí esta publicación y en nuestra próxima publicación continuaremos con más sobre esta poderosa herramienta llamada PowerShell.

Te puede interesar…

0 Comments

Submit a Comment

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