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.
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.
0 Comments