Exportar y recuperar objetos complejos | PowerShell

Muchas veces necesitamos exportar los resultados de los comandos ejecutados en PowerShell.

Como se sabe, todas las salidas de PowerShell son objetos y en muchos casos, son objetos compuestos es decir, objetos que en sus propiedades contienen a otros objetos.

A continuación les daremos unos tips para exportarlos.

Si los exportáramos a un archivo de texto plano, como puede ser un CSV, no los podríamos recuperar con todas sus propiedades.

 Ejemplo:

Aquí tenemos una salida correspondiente al comando

Get-Process -Id 2120 | Select-Object Name,Threads"

Como podemos observar, la propiedad Threads está compuesta de otros objetos.

1

Si exportáramos a un CSV con el comando

Get-Process -Id 2120 | Select-Object Name,Threads | Export-Csv C:\Temp\process.csv

, obtendríamos los siguiente:

2

Si deseáramos recuperar el objeto tal cual era, e importamos desde el archivo CSV, perderemos todas las propiedades compuestas por otros objetos.

$Process = Import-Csv -Path C:\Temp\process.csv

$Process

3

Es por eso, que para exportar objetos compuestos lo conveniente es utilizar formatos XML como se muestra a continuación.

Exportar objeto a XML

Get-Process -Id 2120 | Select-Object Name,Threads | Export-Clixml -Path C:\Temp\Process.xml

4

Importar objeto desde archivo XML

$ProcessXML = Import-Clixml -Path C:\Temp\process.xml

$ProcessXML.Threads[0]

5

Como ven, el objeto se importó tal como lo habíamos exportado.

Espero que les sea útil.

¡Saludos!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: