Exportar y mostrar información sobre direcciones de correo electrónico usando PowerShell | Oficina 365 | Parte 6#13
En este artículo, revisamos la sintaxis básica de comandos de PowerShell que utilizamos para mostrar información sobre las direcciones de correo electrónico de los destinatarios de Exchange Online.
Además, revisamos la sintaxis del comando de PowerShell que utilizamos en caso de que necesitemos exportar la salida del comando de PowerShell a varios tipos de archivos, como TXT, CSV, HTML y XML.
La estructura del comando de PowerShell que utilizamos para obtener información sobre direcciones de correo electrónico
La estructura del comando de PowerShell que utilizamos para mostrar información sobre la dirección de correo electrónico se implementa de la siguiente manera:
1. El tipo de destinatario específico
Usamos el prefijo del cmdlet de PowerShell Get y especificamos el tipo de destinatario de Exchange Online específico al que queremos dirigirnos. En el artículo - Introducción a los distintos tipos de destinatarios de Exchange Online | Cmdlets de PowerShell | Oficina 365 | Parte 8#13, podremos quedar impresionados por la variedad de destinatarios de Exchange Online. Por ahora, digamos brevemente que podemos especificar un tipo específico de destinatario, como "Destinatario del buzón", "Destinatario del grupo", etc., o podemos usar cmdlets de PowerShell como Get-Recipient que se relacionan con la mayoría de los tipos de destinatarios de Exchange Online existentes.
2. La propiedad “estándar” del destinatario que queremos mostrar
La mayoría de las veces, queremos "decirle" selectivamente a PowerShell cuáles son las propiedades específicas del objeto (destinatario) que queremos ver.
La definición de las propiedades puede ser “propiedades estándar del destinatario” (número2):
- "Propiedades de identidad", como DisplayName o Alias
- Propiedades del destinatario que "almacenan" información de la dirección de correo electrónico, como EmailAddresses o PrimarySmtpAddress.
Al mismo tiempo, PowerShell nos permite crear "propiedades personalizadas" (número 3) que incluyen el nombre que definimos para la propiedad específica y una "salida calculada", como por ejemplo: el resultado de una consulta, algunos cálculos, etc. en.
Revisaremos este método en el artículo - Agregar direcciones de correo electrónico usando PowerShell - Importar desde un archivo CSV | Modo masivo | Oficina 365 | Parte 5#13
Uso de la “salida” del comando de PowerShell: información sobre direcciones de correo electrónico
La “salida” que obtenemos del comando de PowerShell que “obtiene para nosotros” información sobre las direcciones de correo electrónico de los destinatarios de Exchange puede ser:
- Se muestra en la consola de PowerShell.
- Almacenado en una variable.
- Exportado a varios tipos de archivos, como TXT, CSV, XML y HTML.
En el siguiente diagrama, podemos ver la estructura del comando de PowerShell que usamos para mostrar información sobre “direcciones de correo electrónico” y, opcionalmente, exportar la información a un archivo.
Propiedades de la dirección de correo electrónico | El almacén de direcciones de correo electrónico
El "almacenamiento principal" que sirve como "contenedor lógico" para todos los tipos de direcciones de correo electrónico en entornos de Exchange Online es un campo llamado EmailAddresses.
Nota: en el entorno de Office 365 y Exchange Online hay campos adicionales de "propiedad de correo electrónico". Por ejemplo, Exchange Online utiliza las siguientes propiedades WindowsEmailAddress y PrimarySmtpAddress para almacenar información sobre la dirección de correo electrónico principal.
Destinatario de Exchange Online: varios tipos de direcciones de correo electrónico
Cada destinatario de Office 365 puede tener varias direcciones de correo electrónico que incluyan:
- Dirección de correo electrónico SMTP (dirección de correo electrónico principal y dirección de correo electrónico proxy).
- Dirección de correo electrónico x500.
- Dirección de correo electrónico no SMTP, como por ejemplo: dirección SIP, que se utiliza como identidad de usuario cuando se utilizan los servicios de Skype empresarial.
Ver información sobre direcciones de correo electrónico en la consola de PowerShell
Mostrar información de la dirección de correo electrónico mediante la consola PowerShell
La sintaxis del comando PowerShell "predeterminada" que utilizamos para mostrar información sobre la dirección de correo electrónico de un destinatario es bastante simple.
Necesitamos especificar:
- El tipo específico de destinatario, como "destinatario del buzón".
- La identidad del destinatario de Exchange Online (alias o dirección de correo electrónico, etc.)
- Las propiedades específicas que queremos mostrar, como DisplayName, PrimarySmtpAddress, EmailAddresses.
Sintaxis del comando PowerShell
Get-Mailbox <Identity> | Select DisplayName,EmailAddressesEjemplo de comando de PowerShell
Get-Mailbox Billy | Select DisplayName,EmailAddresses
En la siguiente captura de pantalla, podemos ver el resultado (el contenido de la propiedad EmailAddresses). La información que se almacena en el campo EmailAddresses incluye información sobre todas las
direcciones de correo electrónico existentes y "otras direcciones" que tiene el destinatario, como la dirección de correo electrónico x500 y la dirección SIP.
Mostrar información sobre la dirección de correo electrónico principal
En caso de que necesitemos mostrar información solo sobre la dirección de correo electrónico principal de un destinatario específico de Exchange Online, podemos utilizar la siguiente sintaxis.
Ejemplo de comando de PowerShell:
Get-Mailbox Billy |Select-Object DisplayName,PrimarySmtpAddressPara mostrar información sobre todas las direcciones de correo electrónico principales de los buzones de Exchange Online, podemos usar la siguiente sintaxis de comandos de PowerShell.
Ejemplo de comando de PowerShell:
Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddressLa “limitación” de la consola PowerShell respecto al asunto de las direcciones de correo electrónico
Aunque podemos usar la consola PowerShell para mostrar información sobre las direcciones de correo electrónico de los destinatarios de Exchange Online, trabajar con la consola PowerShell no es tan cómodo debido a las limitaciones integradas.
Por ejemplo, en caso de que un destinatario específico tenga varias direcciones de correo electrónico, la consola PowerShell no puede mostrar de forma predeterminada todas las direcciones de correo electrónico.
En cambio, la consola de PowerShell muestra un número límite de direcciones de correo electrónico y utiliza los caracteres de tres puntos (…).
El propósito de los caracteres de tres puntos (…) es “informarnos” que hay direcciones de correo electrónico adicionales que no se pueden mostrar.
Ampliar la "propiedad de dirección de correo electrónico"
Con respecto al "problema" de mostrar el "contenido completo" de la propiedad de correo electrónico del destinatario de múltiples valores, podemos implementar una "solución parcial" para un destinatario específico para el problema de mostrar múltiples direcciones de correo electrónico, pero esta solución no es adecuada implementado en un escenario en el que necesitamos mostrar información sobre múltiples destinatarios
En el siguiente ejemplo, utilizamos un comando de PowerShell que obtiene información sobre las direcciones de correo electrónico de
Angelina.
Ejemplo de comando de PowerShell
Get-Mailbox Angelina | Select-Object -ExpandProperty EmailAddressesEn el resultado, podemos ver que la propiedad "EmailAddresses" incluye muchas direcciones de correo electrónico.
PS C:\script> Get-Mailbox Angelina | Select-Object -ExpandProperty EmailAddresses
smtp:Angelina@o365pilot.com
smtp:kk@o365info.com
SPO:SPO_5b27dc17-68b0-442e-804b-aee5b4df9847@SPO_e95bcc9e-2927-483d-ad36-7311a7152bdd
smtp:Angelina@o365info.com
SMTP:Angelina-NEW01@o365info.com
smtp:Angelina-Alias03@o365info.com
smtp:Angelina-Alias02@o365info.comExportar información sobre la dirección de correo electrónico de un destinatario
Una de las tareas administrativas más comunes relacionadas con los destinatarios de Exchange es la necesidad de ver y exportar información sobre la dirección de correo electrónico del destinatario.
En muchos escenarios, necesitaremos "guardar" la información sobre la dirección de correo electrónico del destinatario. dirección de correo electrónico para su uso posterior exportando la información a un archivo.
En los artículos anteriores, revisamos el comando de PowerShell con el prefijo Set , como Set-Mailbox , que se usó para actualizar la dirección de correo electrónico del destinatario de Exchange.
Para obtener información sobre la propiedad específica del destinatario de Exchange Online, como la dirección de correo electrónico del destinatario, utilizamos el comando de PowerShell con el prefijo Obtener, como Get-Mailbox.
El comando de PowerShell Get-Mailbox muestra el resultado en la consola de PowerShell. En caso de que necesitemos exportar la información, agregamos una “parte” adicional al comando de PowerShell con instrucciones sobre el tipo de archivo que queremos usar.
Exportar a archivo usando PowerShell y formatos de archivo compatibles.
PowerShell admite la opción de exportar la salida del comando a los siguientes formatos de archivo: texto, CSV, HTML y XML.
Cuando queremos exportar la "salida del comando" a un archivo, debemos "decirle" a PowerShell cuál es el formato de archivo requerido que queremos usar.
Además de los cmdlets de PowerShell que utilizamos para definir el formato de archivo específico, podemos "agregar" un parámetro específico relacionado con el formato de archivo específico.
Por ejemplo, cuando deseamos exportar la salida del comando PowerShell a un formato de archivo CSV (valores separados por comas), podemos agregar parámetros adicionales como:
- NoTypeInformation: Esta opción evita que PowerShell agregue información innecesaria al archivo CSV.
- Codificación UTF8: en caso de que objetos como usuarios o buzones de correo incluyan caracteres que no estén en inglés, podemos agregar este "parámetro de formato" para habilitar la exportación de información de PowerShell que incluya caracteres que no estén en inglés.
El nombre del archivo y el parámetro “ruta”
Un requisito obligatorio al exportar la salida del comando a un archivo es el “Nombre de archivo.
La parte adicional es el “Camino. El parámetro “ruta” define la ubicación específica en la que queremos guardar el archivo. Por ejemplo: C:\Temp.
El parámetro "ruta" no es un parámetro obligatorio. La mayoría de las veces, cuando exportamos información a un archivo, también proporcionaremos la información de la "ruta".
En caso de que no proporcionemos una ruta específica, PowerShell exporta el archivo a la carpeta desde la que ejecutamos el comando de PowerShell.
Es importante mencionar que cuando proporcionamos el nombre de una ruta específica, como C:\Temp, el comando de PowerShell "excepto" que esta ruta ya está creada.
En otras palabras, de forma predeterminada, el comando de PowerShell no "creará para nosotros" una carpeta específica que se especificó en el parámetro "ruta".
Ejemplo de sintaxis de PowerShell para exportar información a varios tipos de archivos
La siguiente sección incluye un ejemplo de la sintaxis de comandos de PowerShell que utilizamos para exportar información sobre las direcciones de correo electrónico de los destinatarios de los buzones de correo de Exchange Online utilizando los cuatro formatos de archivo.
La sintaxis del comando para exportar se construye a partir de dos partes:
- Parte 1#2: esta es la parte de los cmdlets Get PowerShell, que recuperan información específica.
- Parte 2#2: esta es la parte en la que definimos el formato de archivo específico, la ruta y el nombre del archivo.
En la siguiente sección, podemos ver un ejemplo de la "sintaxis de exportación" para cuatro formatos de archivo: TXT, CSV, XML y HTML.
Exporte la salida del comando PowerShell a un archivo de texto.
Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses,EmailAddresses | Out-File C:\Temp\"Exchange Online recipients.TXT"Exporte la salida del comando PowerShell a un archivo CSV.
Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses,EmailAddresses | Export-CSV C:\Temp\"Exchange Online recipients.CSV" -NoTypeInformation -Encoding UTF8Exporte la salida del comando PowerShell a un archivo HTML.
Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses,EmailAddresses | ConvertTo-Html | Out-File C:\Temp\"Exchange Online recipients.HTML"Exporte la salida del comando PowerShell a un archivo XML.
Get-Mailbox -ResultSize Unlimited |Select-Object DisplayName,PrimarySmtpAddress,EmailAddresses,EmailAddresses | Export-Clixml C:\Temp\"Exchange Online recipients.XML"El próximo artículo de la serie de artículos actual.
Mostrar información sobre direcciones de correo electrónico usando PowerShell | Personalizar la salida usando tabla hash y expresiones personalizadas | Oficina 365 | Parte 7#13


