PowerShell, Office 365, sintaxis |El poder de PowerShell | Parte 2/3 .com
En el artículo actual, revisaremos cómo utilizar el famoso comando "Obtener" de PowerShell para "buscar" (Obtener) objetos y mostrar información sobre los objetos.
Además, aprenderemos cómo podemos "dar forma" u optimizar el resultado que obtenemos del comando "Obtener" de PowerShell para nuestras necesidades específicas.
El poder de PowerShell | Serie de artículos
La serie de artículos Power of PowerShell, que incluye los tres artículos siguientes:
- El poder de PowerShell | Parte 1/3
- El poder de PowerShell | Parte 2/3
- El poder de PowerShell | Parte 3/3
Presentamos el comando "Obtener" de PowerShell
La salida del comando "Obtener" se basa en un formato de salida predefinido (la información que se muestra en la pantalla). Por ejemplo, cuando se utiliza el comando get para mostrar información sobre el buzón, la información se mostrará en formato de tabla, con un “Encabezado de tabla” predefinido (propiedades).
Para fines de demostración, utilizaremos el cmdlet de PowerShell más básico:
Get-Mailbox
Ejemplo 1: mostrar información sobre una instancia específica de un objeto
Para obtener información sobre un buzón de correo específico, necesitaremos proporcionar la identidad del buzón.
La sintaxis del comando de PowerShell es:
Get-Mailbox <identity>Puede ver en la captura de pantalla que el resultado (salida) se muestra en un formato de tabla, con "Encabezados de tabla" predefinidos (propiedad del objeto), como el nombre y el alias del buzón, el nombre del servidor que aloja el buzón y el tamaño del buzón.
Ejemplo 2: mostrar información sobre la clase de objeto
Cuando usamos el comando Get-Mailbox sin especificar la identidad del buzón, el comando "Obtener" predeterminado es Obtener/Recuperar todos los objetos de la clase Mailbox. (PowerShell “entiende” que necesitamos información sobre todos los objetos que “pertenecen” a la clase específica).
Para mostrar una lista de todos los buzones de correo existentes, usamos el comando:
Get-MailboxEn la captura de pantalla puede ver que el resultado del comando Get-Mailbox muestra una lista de todos los buzones de correo existentes.
Nota: podemos controlar el número de buzones que se mostrarán. En caso de que tengamos muchos buzones, el comando "Get-Mailbox" no mostrará todos los buzones. Para "hacer cumplir" que PowerShell muestre una "lista completa" de todos los buzones de correo, podemos agregar el parámetro: ResultSize ilimitado
Sintaxis del comando de PowerShell:
Get-Mailbox -ResultSize unlimitedObtener cmdlets: formatear los resultados de salida
Cuando usamos el comando "Obtener" para mostrar información sobre objetos, hay dos opciones de formato disponibles:
- Formato de tabla
- Formato de lista
(El formato de visualización predeterminado para el comando "Obtener" es: Formato de tabla).
1. Formato de tabla
El “Formato de tabla” (descrito también como formato tabular), nos permite mostrar información en un formato “fácil de leer”.
Formato de tabla basado en la “columna de tabla” (propiedades del objeto) y los valores del objeto que se muestran. debajo de "los encabezados de la tabla".
La principal desventaja del formato Tabla es el ancho de la consola PowerShell. La “cantidad” de datos que se pueden mostrar en la pantalla restringida al ancho de la consola PowerShell. PowerShell nos permite controlar el "diseño" del formato de la tabla eligiendo los encabezados de la tabla (las propiedades del objeto) que se muestran en la pantalla y utilizando los "parámetros de formato" que nos permiten controlar parámetros como: ajuste de texto, ancho de fila. y más.
Como mencionamos antes, cuando usamos el comando "Obtener", el formato de visualización predeterminado es Formato de tabla. Cuando necesitamos personalizar la salida del comando "Obtener", necesitamos "agregar" la opción Pipe para "informar" a PowerShell, cuál es el formato requerido y cuáles son las propiedades requeridas o parámetros de diseño que queremos usar.
Los cmdlets que usamos para usar Table Format es Format-Table, o podemos usar la versión abreviada: FT
Por ejemplo: cuando queramos mostrar información en formato de tabla podemos utilizar la siguiente sintaxis:
Get-Mailbox |Format-TableUna opción adicional es utilizar la versión abreviada: FT
Get-Mailbox |FTEn la captura de pantalla podemos ver la lista de buzones de correo de los usuarios. Observe que los "Encabezados de tabla" están "preconfigurados" mediante la opción de visualización predeterminada del comando "Obtener".
Veamos qué sucede si usamos el comando Get-Mailbox sin la opción |Format-Table.
Puede ver que el resultado es idéntico porque, como se mencionó, el formato predeterminado para el comando "Obtener" es Formato-Tabla.
2. Formato de lista
Las principales ventajas de utilizar el “Formato de lista” son que podemos mostrar toda la información (propiedad) disponible sobre el objeto. El formato de lista no se ve “afectado” por la “limitación de ancho” de la consola de PowerShell porque la información sobre el objeto (propiedades y valores) se muestra como una “lista” debajo del nombre del objeto.
Este formato a veces podría considerarse una “desventaja” porque, cuando se muestran muchos objetos, la información en formato Lista es “Menos fácil de leer” frente al formato Tabla.
Sintaxis del comando de PowerShell:
Get-Mailbox |Format-ListUna opción adicional es utilizar la versión abreviada: FL
Get-Mailbox |FLSi observa la captura de pantalla, puede ver que cuando usamos la opción "Formato-Lista", obtenemos muchos campos de datos adicionales (propiedades), que no estaban disponibles para nosotros cuando usamos el formato de tabla.
Formatee la salida del comando "Obtener"
En esta sección aprenderemos cómo "optimizar" la salida que muestra el comando "Obtener".
Los desafíos que enfrentamos son:
- Cómo mostrar la información (propiedades) que son relevantes para nuestras necesidades Como recordará, el formato Tabla muestra información muy limitada y el Formato Lista muestra “demasiada información” que no es tan fácil de leer.
- Cómo superar las limitaciones del ancho de pantalla de la consola PowerShell (La consola PowerShell tiene un ancho específico que limita la cantidad de datos que se pueden mostrar).
Comencemos a revisar las diferentes soluciones que podemos utilizar para mediar en esta limitación.
Usando la opción “Propiedad”
La opción "propiedad" nos permite elegir propiedades que sean relevantes para nuestras necesidades.
Por ejemplo, queremos mostrar información sobre buzones de correo. La información que nos interesa incluye las siguientes propiedades: Alias de usuario, Nombre para mostrar del usuario y Dirección de correo electrónico del usuario.
Para poder "anular" la propiedad predeterminada que se muestra con el comando "Obtener", podemos usar la opción "propiedad" y especificar los "nombres de propiedad" que queremos mostrar.
La sintaxis de PowerShell es:
Get-Mailbox |Format-Table -Property Alias, Displayname,EmailAddressesPodemos utilizar una versión abreviada sin especificar la opción “propiedad”. Cuando usamos la opción “Formato-Tabla” o “Formato-Lista” y agregamos nombres de propiedades, PowerShell es “lo suficientemente inteligente” como para comprender que estas son las propiedades que deben mostrarse.
La versión abreviada del comando PowerShell se verá así:
Get-Mailbox |FT Alias,Displayname,EmailAddressesNota: En los siguientes ejemplos, usaremos la versión abreviada.
Instrucciones generales:
- Nombre de la propiedad: el nombre de la propiedad debe escribirse como "una palabra" sin espacios.
- Separe el nombre de la propiedad: cuando escribimos más de un nombre de propiedad, debemos agregar el carácter de "coma" después de cada nombre de propiedad. Podemos tener el carácter “espacio” entre los nombres de las Propiedades, siempre y cuando usemos el carácter “coma” para separar cada uno de los nombres de las Propiedades.
En la siguiente captura de pantalla, podemos ver el resultado del comando Get-Mailbox que muestra las propiedades que elegimos:
Observa que aunque logramos mostrar las propiedades requeridas, todavía tenemos el problema del “ancho” de la consola PowerShell.
Al mostrar propiedades que incluyen "Valores largos", una solución opcional es utilizar la opción del formato Lista.
Por ejemplo, usemos el mismo comando y usemos la opción Formato-Lista:
Get-Mailbox |FL Alias,Displayname,EmailAddressesUsando la opción "Ajustar"
Otra opción que utilizamos para "tratar" con "valores largos", como: dirección de correo electrónico, es la opción "Ajustar". Cuando usamos la opción “wrap”, las propiedades como la dirección de correo electrónico que incluyen “valores largos” que alcanzan la limitación de “ancho” de la consola de PowerShell, se “moverán” a la siguiente línea, por lo que podremos ver la opción “completa”. value”.
Por ejemplo: para mitigar con la “limitación de ancho de la consola PowerShell”, podemos usar la opción “Wrap”.
Sintaxis del comando de PowerShell:
Get-Mailbox |FT Alias,Displayname,EmailAddresses -WrapEn la captura de pantalla, puedes ver el resultado al usar la opción "Ajustar". Cuando los caracteres "llegan al final" del "borde" derecho de la consola PowerShell, el resto de la "cadena de valor" (dirección de correo electrónico) se mostrará en una nueva línea.
Usando la opción “Grupo”
La opción "Grupo", como su nombre lo indica, nos permite agrupar los resultados mostrados.
Por ejemplo: cuando usamos el comando estándar "Get-Mailbox", el resultado mostrado incluirá una lista de todos los tipos de buzones, como como buzón de usuario, buzón de sala, buzón compartido, etc.
Al utilizar la opción "Grupo", necesitaremos especificar las propiedades que servirán como "fuente" para la "agrupación".
Por ejemplo: para mostrar información sobre Buzones agrupados por su tipo de Buzón, usaremos la propiedad “RecipientTypeDetails”.
Sintaxis del comando de PowerShell:
Get-Mailbox |Group RecipientTypeDetailsEn la captura se puede ver que la opción “Grupo” nos permite obtener una “Vista Clara” sobre el tipo de Buzón que tenemos y sobre el número de cada uno de los tipos de Buzón.
Usando la opción "Ordenar"
La opción "ordenar" nos permite ordenar la salida relacionándola con un encabezado de tabla específico (propiedad).
Por ejemplo: cuando queremos ordenar la salida del comando Get-Mailbox por la propiedad de "Alias".
Sintaxis del comando de PowerShell:
Get-Mailbox |Sort-Object AliasPodemos usar una versión abreviada del comando ordenar:
Get-Mailbox | Sort AliasLa "clasificación" de los valores podría implementarse mediante el uso de orden ascendente o descendente. No hay un "interruptor ascendente" para el cmdlet Ordenar-Objeto, porque la opción predeterminada "Ordenar" es Ascendente.
En caso de que queramos utilizar la opción de Descendente, podemos utilizar la siguiente sintaxis:
Get-Mailbox |Sort Alias DescendingUsando la opción “AutoTamaño”
La opción de “AutoTamaño” es relevante cuando elegimos mostrar información utilizando el Formato de Tabla. Como sabemos, cuando se utiliza el formato de tabla, la salida del comando "Obtener" utiliza "parámetros de diseño" predefinidos, como el ancho de fila de la tabla.
Por ejemplo: cuando usa el comando Get-Mailbox, puede ver en la captura de pantalla que los buzones con un "nombre largo", como “DiscoverySearchmailbox”, no se muestran completamente:
Para superar esta limitación, podemos usar la opción de: -AutoSize
Al usar la opción AutoSize, PowerShell personalizará el ancho de la fila de la tabla para que se ajuste al valor con el "Nombre más largo".
Sintaxis del comando de PowerShell:
Get-Mailbox |FT -AutoSizeObserve que ahora podemos ver el “Nombre completo” del “DiscoverySearchmailbox” pero, debido a la limitación del ancho de la consola de PowerShell, otras propiedades predeterminadas fueron “eliminadas” de la pantalla, porque la consola de PowerShell no está lo suficientemente ancho para mostrar el resto de las propiedades, como el nombre del servidor, etc.
Combinación de parámetros de visualización.
Podemos usar una combinación de parámetros de visualización para optimizar la salida mostrada.
En el siguiente ejemplo, usamos una combinación de “parámetros de visualización”: Ordenar, Formatear-Tabla y Agrupar.
Nota: en lugar de usar el parámetro "grupo", usaremos el parámetro "Groupby". La opción de: “Groupby” nos permite mostrar la información en diferente formato.
Sintaxis del comando de PowerShell:
Get-Mailbox |Sort RecipientTypeDetails |FT Name,Alias
-Groupby RecipientTypeDetails- La primera parte "Obtendrá" información sobre todos los buzones existentes.
- La segunda parte ordenará el resultado (la información sobre los buzones) utilizando la propiedad "RecipientTypeDetails".
- La tercera parte formateará la salida utilizando el formato de tabla y mostrará la propiedad "Alias" y "nombre", y la opción de "Groupby" mostrará la información en "secciones".
Cada una de las "Secciones" incluye información sobre los buzones que "pertenecen" a un tipo de buzón específico, como un buzón de usuario, un buzón compartido, etc.











