Básicos de PowerShell: Format-Table, ft output formatting Cmdlet with examples

Windows PowerShell Scripting – Format-Table (FT)

Format-Table, o FT para abreviar, controla el formato de la salida de sus comandos de Windows PowerShell. Siempre que la presentación de la información sea importante, canalice la salida del script en Format-Table. En esta página te mostraré ejemplos de este sencillo, pero importante comando.

Temas de Format-Table de Windows PowerShell

  • Format-Table – Ejemplos simples
  • Format-Table – Ejemplos intermedios
  • Format-Table con Get-WmiObject
  • Format-Table Alias FT
  • Format-Wide
  • PowerShell Format-List

Format-Table – Ejemplos simples

Escenario: deseamos investigar los procesos que se ejecutan en la estación de trabajo o en un servidor de Windows.

Requisitos previos:
PowerShell y .Net framework están instalados en tu ordenador.
Estás en el prompt PS> O si tienes PowerShell 2.0, lanza el ISE.

Ejemplo 1a
Comencemos con un ejemplo usando el formato por defecto:

# Preliminary example, no Format-Table yetGet-Process

El ‘problema’ es que el nombre del proceso está a la derecha, y tenemos columnas en la salida que no interesan.

Ejemplo 1b
Ahora vamos a introducir el Formato-Tabla para poder controlar qué propiedades mostrar en la salida. Supongamos que sólo nos interesa ‘Handles’.

# Example of PowerShell Format-TableGet-Process | Format-Table ProcessName, Handles -auto

Nota 1: Gracias a Format-Table, ahora tenemos el nombre del proceso en la primera columna.

Nota 2: -auto evita que la salida se extienda a todo lo ancho y, en consecuencia, el parámetro -auto facilita la lectura de las cifras. Para ver el efecto pruebe el comando anterior sin -auto.

Guy Recomienda: Network Performance Monitor (FREE TRIAL)

SolarWinds Network Performance Monitor (NPM) le ayudará a descubrir lo que está sucediendo en su red. Esta utilidad también le guiará en la resolución de problemas; el panel de control le indicará si la causa raíz es un enlace roto, un equipo defectuoso o una sobrecarga de recursos.

Lo que más me gusta es la forma en que NPM sugiere soluciones a los problemas de la red. Su también tiene la capacidad de supervisar la salud de las máquinas virtuales VMware individuales. Si usted está interesado en la solución de problemas, y la creación de mapas de red, entonces le recomiendo que pruebe NPM en una prueba gratuita de 30 días.

SolarWinds Network Performance Monitor Download 30-day FREE Trial

Solución de problemas de Format-Table

Lo principal que falla con Format-Table es olvidar la tubería (|) antes del comando. Mi técnica es hacer que el comando principal funcione y luego usar (|) para canalizar la salida a Format-Table. Desde ahí podemos listar los nombres de las propiedades que deseamos mostrar.

Un problema secundario con este cmdlet es olvidar la coma entre las propiedades; pero recuerda, no hay coma después de Format-Table y antes de la 1ª propiedad.

Get-Process | Format-Table ProcessName, Handles ID -autoGet-Process | Format-Table ProcessName, Handles, ID -auto

Formato-Tabla – Ejemplos intermedios

Ejemplo 2a:
Es hora de investigar qué otras propiedades de Get-Process están disponibles, luego podemos afinar nuestro comando Formato-Tabla.

# Example of PowerShell Format-Table for propertiesGet-Process | Get-Member -Membertype property

Ejemplo 2b: Incluso en este caso, no puedo resistirme a utilizar Format-Table para filtrar qué columna se exporta al archivo.

$Proc = Get-Process | Get-Member -Membertype property$Proc | Format-Table Name | Out-File procprop1.txt

Nota 3: No es realmente necesario introducir la variable $Proc. Sin embargo, una ventaja de esta técnica es que nos ahorra problemas con la envoltura de palabras de nuestro script a la siguiente línea.

Ejemplo 3a: Como resultado de esta investigación podemos elegir algunas columnas diferentes en la salida, por ejemplo, BasePriority y HandleCount:

# Ejemplo de PowerShell Format-Table para múltiples elementos
Get-Process | Format-Table Name, HandleCount, BasePriority

Ejemplo 3b: Veamos qué ocurre si añadimos -auto.

# Example of PowerShell Format output for multiple itemsGet-Process | Format-Table Name, HandleCount, BasePriority -auto

El tipo recomienda: SolarWinds Engineer’s Toolset (PRUEBA GRATUITA)

Este Engineer’s Toolset proporciona una completa consola de 50 utilidades para solucionar problemas informáticos. Guy dice que me ayuda a supervisar lo que ocurre en la red, y cada herramienta me enseña más sobre el funcionamiento del sistema subyacente.

Hay tantos aparatos buenos; es como tener rienda suelta a una tienda de golosinas. Afortunadamente, las utilidades se muestran de forma lógica: monitorización, descubrimiento de redes, diagnóstico y herramientas de Cisco. Pruebe el SolarWinds Engineer’s Toolset en una prueba gratuita de 14 días ahora!

SolarWinds Engineer’s Toolset Download 14-day FREE Trial

Format-Table with Get-WmiObject

Format-Table entra en acción cuando se trata de clases Get-WmiObject. Debido a que la salida contiene más de 5 propiedades, y el diseño por defecto es cortesía de Format-List; prefiero seleccionar mis propiedades, y utilizar Format-Table.

Ejemplo 4: Get-WmiObject

# Example of Get-WmiObject with default outputGet-WmiObject -Class Win32_NetworkAdapter

Observa (arriba) que el formato por defecto prescrito para Get-WmiObject es Format-List. Sin embargo, podemos canalizar la salida en Format-Table (ver más abajo)

Clear-Host# Example of Get-WmiObject with Format-Table outputGet-WmiObject -Class Win32_NetworkAdapter |Format-Table DeviceId, Name, MACAddress -AutoSize

Parámetros de Format-Table de PowerShell

Ya hemos visto el parámetro -auto de Format-Table, ahora vamos a investigar más interruptores:

# Extra parameters for PowerShell to Format outputClear-hostGet-Help Format-Table -full

Nota 4: Uno de mis parámetros favoritos de Format-Table es -GroupBy

Ejemplo 5: -GroupBy
Format-Table tiene un parámetro llamado -GroupBy, que ofrece un método de agregación de los datos.

Nota 5: Out-GridView: PowerShell v 2.0 introduce un nuevo cmdlet para controlar la visualización de los datos. Vea más sobre cómo canalizar los resultados en out-GridView.

Ejemplo 6: Sort-object (Puede ser abreviado como ‘Sort’)
Otra técnica para obtener orden en la salida es emplear Sort-object.

$Proc = Get-Process | Sort-Object -descending BasePriority$Proc | Format-Table Name, HandleCount, BasePriority -auto

Formato-Tabla Alias FT

Con Microsoft, siempre hay al menos tres formas de hacer todo, lo que parece una redundancia cuando eres un experto, parece una perspectiva cuando eres un principiante. Un ejemplo obvio es que puedes abreviar Formato-Tabla a FT. A medida que aumente su gama de comandos de PowerShell, mantenga un ojo en otro Alias de PowerShell, por ejemplo, gwmi para Get-WmiObject y gci (Get-Childitem).

Aquí hay métodos alternativos para lograr los objetivos anteriores, cada ejemplo está diseñado para desarrollar su visión binocular, por lo tanto ver el objetivo más claramente. Por ejemplo, si experimenta con format-wide y format-List ampliará su gama de opciones de formato.

Guy Recomienda: SolarWinds Admin Bundle for Active Directory (FREE TOOL)

Importe usuarios desde una hoja de cálculo. Sólo tiene que proporcionar una lista de los usuarios con sus campos en la fila superior, y guardar como archivo .csv. A continuación, ejecute esta utilidad GRATUITA y haga coincidir sus campos con los atributos de AD, haga clic e importe los usuarios.

Opcionalmente, puede proporcionar el nombre de la OU donde nacerán las nuevas cuentas. Descarga tu herramienta de importación masiva GRATIS.

SolarWinds Admin Bundle Descarga el paquete de herramientas 100% GRATIS

Si necesitas un software de análisis de aplicaciones más completo, Descarga una prueba gratuita de SAM (Server & Application Monitor)

Ejemplos de Alias FT de PowerShell

Ejemplo 7a:

# Example of PowerShell Format output with FTGet-Process | FT ProcessName, Handles, PagedMemorySize -auto

Puntos de aprendizaje. Puedes sustituir FT por Formato-Tabla. También puedes investigar otras propiedades, por ejemplo PagedMemorySize.

Ejemplo 7b:

Clear-hostGet-Process | Get-Member -Membertype method | FT name

Puntos de aprendizaje. Además de las propiedades, puedes investigar el método de un objeto. Por ejemplo, en otros scripts puedes emplear el método .kill().

Ejemplo 7c:

Get-Process | FT Name, HandleCount -groupby BasePriority -auto

Puntos de aprendizaje. No es imprescindible usar variables. Este es un ejemplo más sencillo centrado en el modificador -groupby.

Cmdlet Format-Wide

Cómo descubrir más Cmdlets de formato

Clear-HostGet-Command -verb format

Además de Format-Table, puede mostrar los datos no en una columna sino en dos o tres columnas. Esta es la opción format-wide o (fw), que es útil cuando se tiene una lista larga con un solo campo, por ejemplo:

Get-Process | Get-Member -Membertype method | Format-Wide name -column 3.

Format-List

La otra forma en que PowerShell puede formatear la salida es con una lista. Esto es útil cuando se quiere mostrar múltiples propiedades para un objeto. Aquí hay un ejemplo:

#Example of PowerShell Format-ListGet-Process services | Format-List -property *

Nota 6: Lo que hace que valga la pena utilizar el formato-Lista es el comodín * (estrella).

Ver más sobre Formato-Lista»

Técnica de Script (cmdlet)

En cuanto a nuestra técnica de trabajo para Formato-Tabla, hemos llegado a una encrucijada. Mi método de trabajo preferido es crear scripts y luego ejecutarlos desde la línea de comandos de PowerShell. La otra alternativa es ir escribiendo y reescribiendo los comandos en el shell. Mi técnica cobra sentido cuando los comandos son complejos; como ventaja, mis scripts documentan lo que hago para que sea fácil referirse y refinar experimentos anteriores.

Si a ti también te gusta este método de script (cmdlet), entonces primero asegúrate de que PowerShell permitirá que el script se ejecute, sólo tienes que hacer esto una vez, escribe :
Set-ExecutionPolicy RemoteSigned

Suponiendo que yo he guardado el ejemplo 2 en un archivo llamado proc.ps1, lo que hago es ir al prompt de PS y escribir .\Nproc. Tienes que guardar el script en el directorio de trabajo, o bien utilizar cd para cambiar al directorio donde se guardó el script.

«

Resumen de Formato-Tabla en Windows PowerShell

La presentación realmente transforma la salida de tus scripts de PowerShell. Además, cuando se obtiene demasiada información la respuesta es filtrar y reducir el número de columnas en la presentación. En otras ocasiones, usted necesita mostrar propiedades adicionales, que no son mostradas por el comando por defecto. En cada caso, Format-Table le da el control sobre la presentación de su salida.

Aunque Format-Table (o FT para abreviar), es un comando omnipresente, tiene numerosos interruptores. Con la aplicación juiciosa de sus muchos interruptores, usted puede producir salidas creativas y eficaces.

Vea más tutoriales de salida de Microsoft PowerShell:

– PShell Home – Out-File – Out-GridView – ConvertTo-Csv – ConvertTo-Html – ConvertFrom-Csv

– Tee-Object – Import-CSV – Format-Table – PowerShell Here-String – ConvertFrom-JSON

– Export-CliXml – Format-List – Read-Host – PowerShell Get-History – -f format – Pipe to file

Por favor, envíame un email si tienes un mejor script de ejemplo. También por favor informe de cualquier error de hecho, errores gramaticales o enlaces rotos, estaré encantado de corregir el fallo.

Deja una respuesta

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