Te damos la bienvenida a la segunda de las 3 partes que componen PowerShell: una guàa completa. Haz clic en los siguientes enlaces para consultar la parte 1 y la parte 3. En esta entrada hablaremos de la importación y exportación de datos hacia y desde el Shell.
Importar datos en PowerShell
PowerShell soporta una gran cantidad de formatos de datos que se pueden importar. Esto permite a los administradores ejecutar comandos en los datos introducidos. Hay dos comandos que aprender a utilizar, Get-Content e Import-csv. El cmdlet Get-Content captura el contenido de un objeto en una ubicación especàfica, generalmente un texto o una cadena. Import-Csv crea un objeto personalizado similar a una tabla que utiliza los datos y los encabezados tomados de un archivo csv. Puedes obtener más información escribiendo get-help get-content -full y get-help import-csv -full
Para mostrar estas funciones utilizaremos nuestro laboratorio de pruebas The Solving 2012 R2. Creamos un archivo de prueba con los nombres de host de los servidores y lo guardamos en la ruta C:\Temp\Test.txt
Escribe Get-Content C:\TEMP\Test.txt y Powershell importará el contenido.
Ahora que tenemos los datos en el Shell, podemos comenzar a usarlos.
Escribe Get-Content C:\Temp\test.txt | ForEach-Object {Get-WMIObject -class win32_processor} | FT – Autosize
Este comando devuelve los detalles de la CPU de los servidores en test.txt. El comando introduce varios conceptos clave para entender la importación de datos en Powershell:
- El comando Get-WMIObject -class win32_processor contiene la información de la CPU.
- El cmdlet ForEach-Object aplicará el comando Get-WMIObject a cada nombre de host en la lista test.txt.
- Las llaves { } que encierran el comando {Get-WMIObject -class win32_processor} informan a PowerShell de que debe ejecutar Get-WMIObject -class win32_processor para cada lànea de texto C:\Temp\test.txt.
- La parte final | FT -Autosize introduce el retorno de los datos (output) de PowerShell, FT es un alias de Format-Table, mientras el parámetro -autosize hace que el shell muestre la información de forma legible.
Como siempre, podemos ir aún más allá. El resultado anterior puede no contener toda la información que necesitamos sobre los procesadores.
Escribe Get-content C:\TEMP\test.txt | ForEach-Object {Get-WmiObject -class win32_processor} | Get-member
Ahora puedes modificar el comando para buscar la información que necesitas.
Por ejemplo Get-content C:\TEMP\test.txt | ForEach-Object {Get-WmiObject -class win32_processor} | Select-Object Name, socketdesignation, numberofcores, number
oflogicalprocessors, L2cachesize, l3cachesize | Format-table -AutoSize
Exportar datos de PowerShell
Ya hemos visto brevemente cómo mostrar los datos de PowerShell utilizando el cmdlet Format-Table. Hay muchos otros formatos disponibles y entre los más utilizados se encuentran:
- Format-List: el formato por defecto de PowerShell, para la salida del pipeline. A continuación mostramos un ejemplo:
Escribe Get-content C:\TEMP\test.txt | ForEach-Object {Get-WmiObject -class win32_processor} | Select-Object Name, socketdesignation, numberofcores, number
oflogicalprocessors, L2cachesize, l3cachesize | Format-list
- Export-CSV: PowerShell puede exportar datos directamente en CSV (Valores separados por comas), una excelente solución para realizar un informe.
Escribe Get-content C:\TEMP\test.txt | ForEach-Object {Get-WmiObject -class win32_processor} | Select-Object Name, socketdesignation, numberofcores, number
oflogicalprocessors, L2cachesize, l3cachesize | Export-CSV C:\TEMP\Test.csv
A continuación, abre el archivo CSV que aparece en C:\TEMP\Test.csv
- Convertto-HTML: Powershell puede exportar datos directamente en HTML y también puede importar atributos CSS para crear informes gráficos atractivos.
Escribe Get-content C:\TEMP\test.txt | ForEach-Object {Get-WmiObject -class win32_processor} | Select-Object Name, socketdesignation, numberofcores, number
oflogicalprocessors, L2cachesize, l3cachesize | ConvertTo-Html > C:\Temp\test.html
- Output Everything!: también puedes pedirle a PowerShell que muestre todo lo que se encuentre en el pipeline. Solo hay que añadir -property * al comando
Escribe Get-content C:\TEMP\test.txt | ForEach-Object {Get-WmiObject -class win32_processor} | Format-List-Property *
En la tercera parte de PowerShell: una guàa completa presentaremos algunos ejemplos prácticos de scripts de PowerShell para administradores de TI. Hablaremos de soluciones útiles para trabajar con Active Directory, sistemas de archivos y mucho más.
Read related articles
Cómo instalar y configurar Windows Server Update Services (WSUS)
Windows Server Update Services (WSUS) es una función necesaria en entornos corporativos. Los servicios de WSUS mejoran notablemente la eficiencia
Cómo imponer restricciones a los dispositivos con un GPO
Hemos visto cómo limitar software (de dos formas distintas) y sitios web mediante GPO. Ahora es el momento de limitar
Cuándo y cómo utilizar Sysprep
Sysprep es una herramienta de preparación de sistemas Microsoft utilizada por los administradores de sistemas generalmente durante la implementación automática