Búsqueda de sitios web

Administrar dirección de correo electrónico usando PowerShell | Oficina 365


El artículo actual y el siguiente, creados como una "referencia de comandos de PowerShell", para diversas tareas relacionadas con el tema de "Administración de direcciones de correo electrónico en un entorno basado en Office 365 y Exchange Online" utilizando PowerShell.

Agregar una dirección de correo electrónico al destinatario de Exchange Online mediante PowerShell

“Agregar una dirección de correo electrónico mediante el comando Set-Mailbox | Destinatario del buzón

Exchange Online incluye muchos tipos de destinatarios, como "Destinatario de buzón", "Destinatario de grupo", "Destinatarios de contacto", "Destinatario de carpeta pública", etc.

La mayoría de los ejemplos de comandos de PowerShell que se relacionan con la tarea de agregar la NUEVA dirección de correo electrónico estarán relacionados con el “destinatario del buzón” de Exchange Online.

Los cmdlets de PowerShell que utilizamos para agregar o eliminar la dirección de correo electrónico del "destinatario del buzón" es el comando de PowerShell Set-Mailbox.

Las propiedades que almacenan información sobre direcciones de correo electrónico

La información sobre las direcciones de correo electrónico del “destinatario del buzón” de Exchange Online (y otros tipos de direcciones), almacenadas en la “propiedad EmailAddress”, que sirve como contenedor lógico, para todas las direcciones de correo electrónico asociadas con el de “Destinatario del buzón”.

Por ejemplo, la "propiedad EmailAddress" contiene información sobre la dirección de correo electrónico principal, las direcciones de correo electrónico proxy, la dirección x500, la dirección SIP, etc.

Propiedad adicional de “Destinatario del buzón” que incluye información sobre el destinatario. La dirección de correo electrónico principal es la propiedad WindowsEmailAddress.

Aunque la información sobre la dirección de correo electrónico principal aparece en la “propiedad EmailAddress”, usaremos la propiedad WindowsEmailAddress para una tarea en la que necesitamos actualizar la dirección de correo electrónico principal.

Diferentes tipos de direcciones de correo electrónico del buzón de usuario de Exchange Online

La mayoría de las veces, el término "dirección de correo electrónico" se traduce como "dirección de correo electrónico SMTP". El destinatario de Exchange Online puede tener un tipo adicional de "dirección", como una dirección de correo electrónico x500 y una dirección SIP. Nos referiremos brevemente a este tipo de “dirección”.

Los dos métodos para agregar una dirección de correo electrónico al destinatario de Exchange Online

La tarea de agregar la NUEVA dirección de correo electrónico se puede implementar mediante dos métodos:

1. Usando la sintaxis predeterminada del comando Set-Mailbox

Este es el método menos preferido porque, cuando usamos esta opción, la NUEVA dirección de correo electrónico "sobrepasará" la dirección de correo electrónico existente y eliminará la dirección de correo electrónico existente, como las
direcciones de correo electrónico proxy.

2. Usando el comando Set-mailbox + El método “@{add ”

Este es el método más preferido porque, cuando utilizamos el método “@{add”, la NUEVA dirección de correo electrónico “unirá” las direcciones de correo electrónico de los destinatarios existentes en lugar de reemplazar y eliminar las direcciones de correo electrónico existentes.

Reemplazar/Actualizar dirección de correo electrónico principal existente | Destinatario del buzón

Método 1#2: Agregar (reemplazar) la dirección de correo electrónico principal | Usando la sintaxis de comando predeterminada Set-Mailbox

En caso de que usemos PowerShell Set-Mailbox con el parámetro "-EmailAddress" y especifiquemos una dirección de correo electrónico, PowerShell usará la dirección de correo electrónico que se proporcionó como reemplazo de una dirección de correo electrónico principal existente.

La dirección de correo electrónico principal anterior se guardará como: Dirección de correo electrónico proxy. ¡Todas las direcciones de correo electrónico de los destinatarios existentes se eliminarán

Como se mencionó, este es el método menos preferido.

Reemplazar la dirección de correo electrónico principal existente | Método 1#2

Sintaxis del comando de PowerShell:

Set-Mailbox <Identity> -EmailAddress <NEW primary E-mail address>

Ejemplo de comando de PowerShell:

Set-Mailbox "Bob" -EmailAddress BobNewEmail@o365info.com

Método 2#2: Agregar (reemplazar) la dirección de correo electrónico principal | Establezca la propiedad: WindowsEmailAddress

Este es el método preferido porque, al utilizarlo, la dirección de correo electrónico adicional del destinatario de Exchange Online no se eliminará.

En este método, "abordamos" otra propiedad del buzón de Exchange Online denominada WindowsEmailAddress.

La propiedad del buzón de Exchange Online - WindowsEmailAddress, “contiene” la dirección de correo electrónico principal del destinatario.

En caso de que establezcamos el valor de la dirección de correo electrónico almacenada en la propiedad WindowsEmailAddress, la dirección de correo electrónico principal del destinatario de Exchange Online también se actualiza.

Reemplazar la dirección de correo electrónico principal existente | Método 2#2

Sintaxis del comando de PowerShell:

Set-Mailbox <Identity> -WindowsEmailAddress <NEW primary E-mail address>

Ejemplo de comando de PowerShell:

Set-Mailbox "Bob" -WindowsEmailAddress BobNewEmail@o365info.com

Agregue una dirección de correo electrónico adicional (dirección de correo electrónico proxy) utilizando el método "@{add"

Cuando se utiliza el método de PowerShell “@{add”, la dirección de correo electrónico que especificamos se agrega a la “matriz de direcciones de correo electrónico” existente como una dirección de correo electrónico adicional.

Para agregar una dirección de correo electrónico adicional a un destinatario sin "afectar" las direcciones de correo electrónico existentes, podemos utilizar la siguiente sintaxis:

Agregar dirección de correo electrónico proxy

Sintaxis del comando de PowerShell:

Set-Mailbox <identity> -EmailAddresses @{add="<E-mail address>"}

Ejemplo de comando de PowerShell:

Set-Mailbox "Angelina" -EmailAddresses @{add="Angelina-Alias11@o365info.com"}

Agregar varias direcciones de correo electrónico proxy

En caso de que necesitemos agregar varias direcciones de correo electrónico, podemos separar cada dirección de correo electrónico con una coma.

Ejemplo de comando de PowerShell:

Set-Mailbox "Angelina" -EmailAddresses @{add="Angelina-Alias11@o365info.com","Angelina-Alias12@o365info.com"}

Agregar un tipo adicional de dirección

Agregar o actualizar la dirección SIP | Destinatario del buzón

En caso de que necesitemos agregar una dirección SIP o reemplazar una dirección SIP existente, podemos usar la siguiente sintaxis de comando de PowerShell:

Sintaxis del comando de PowerShell:

Set-Mailbox <identity> -EmailAddresses SIP:<SIP Address>

Ejemplo de comando de PowerShell:

Set-Mailbox "Angelina" -EmailAddresses SIP:Angelina@o365info.com

Agregar o actualizar la dirección de correo electrónico x500 | Destinatario del buzón

Sintaxis del comando de PowerShell:

$User=Get-Mailbox <Identity>
$User.EmailAddresses+="<X.500 Email Address>"
Set-Mailbox <Identity> -EmailAddresses $User.EmailAddresses

Ejemplo de comando de PowerShell:

$User=Get-Mailbox John
$User.EmailAddresses+="X500:/O=ORG /OU=FIRST ADMINISTRATIVE GROUP/CN=RECIPIENTS/CN=XX"
Set-Mailbox John -EmailAddresses $User.EmailAddresses

Actualización de las propiedades del buzón de Exchange Online en el entorno de sincronización de directorios

En caso de que su infraestructura se base en el entorno de sincronización de directorios o en el entorno híbrido de Exchange, no podemos utilizar “Exchange Online PowerShell” para implementar actualizaciones de configuración. de “objetos en la nube”, como - buzones de correo de destinatarios de Exchange Online.

En este tipo de escenario, necesitamos ejecutar las diversas tareas de administración de direcciones de correo electrónico desde el entorno local.

Por ejemplo, en caso de que tengamos un entorno Exchange Hybrid y necesitemos actualizar la dirección de correo electrónico del destinatario, como “buzón remoto destinatario” (destinatario que tiene un buzón de Exchange Online), necesitaremos usar la “Consola PowerShell local de Exchange”.

Para actualizar la dirección de correo electrónico principal del destinatario del buzón de Exchange Online, que se sincronizó desde Exchange local, necesitaremos ejecutar el comando desde la consola PowerShell local de Exchange usando la siguiente sintaxis:

Sintaxis del comando de PowerShell:

Set-RemoteMailbox <Mailbox> -EmailAddresses <Primary E-mail address> -EmailAddressPolicyEnabled $false

Ejemplo de comando de PowerShell:

Set-RemoteMailbox "John" -EmailAddresses John@o365info.com -EmailAddressPolicyEnabled $false

Implementación de operaciones masivas usando PowerShell | Prefijo

En las siguientes secciones, revisamos varios escenarios en los que utilizamos el "modo masivo" para actualizar una dirección de correo electrónico existente o agregar una dirección de correo electrónico adicional.

El proceso masivo puede considerarse una herramienta muy poderosa pero, al mismo tiempo, el tiempo puede considerarse una "herramienta peligrosa" porque las actualizaciones que ejecutamos podrían afectar a todos los destinatarios de Exchange existentes.
Por esta razón, mi La recomendación es probar la operación masiva usando “Pruebas buzones de correo” y usando el parámetro de PowerShell “Whatif”.

Dos métodos para definir una “matriz de destinatarios”

En la siguiente sección, revisamos dos métodos para usar el modo Bulk:

  • Método 1: defina la "matriz" de destinatarios mediante el uso de una variable que almacene el contenido de los comandos de PowerShell, como Get-Mailbox.
  • Método 2: defina la "matriz" de destinatarios, utilizando una variable que almacene el contenido que se "obtiene" de un archivo CSV, que incluye información sobre los destinatarios cuya dirección de correo electrónico queremos actualizar.

Descripción del escenario.

El ejemplo que revisamos se basará en el siguiente escenario:

  • Nuestra empresa utiliza el nombre de dominio público: o365info.com
  • Nuestra empresa compró un nombre de dominio adicional: o365pilot.com

En la actualidad, todos los usuarios de la empresa tienen direcciones de correo electrónico que utilizan el sufijo de nombre de dominio
- “o365pilot.com .

Nuestras tareas son:

  • Escenario 1: reemplazar la dirección de correo electrónico principal existente por una NUEVA dirección de correo electrónico principal que utilice el NUEVO nombre de dominio (o365pilot.com)
  • Escenario 2: agregue una dirección de correo electrónico adicional (dirección de correo electrónico proxy) utilizando el NUEVO nombre de dominio (o365pilot.com)

1. Agregue una dirección de correo electrónico de alias adicional utilizando un NUEVO sufijo de nombre de dominio para todos los destinatarios del buzón | Modo masivo

En la siguiente sección, revisamos el proceso de uso del script masivo de PowerShell, que realizará la tarea de:

Agregar una NUEVA dirección de correo electrónico de alias, que utiliza un NUEVO sufijo de nombre de dominio, para cada uno de los destinatarios de nuestro buzón de Exchange Online.

En nuestro escenario, la dirección de correo electrónico adicional (dirección de correo electrónico proxy) se basa en la siguiente estructura:

  • La NUEVA dirección de correo electrónico "Alias" (la parte izquierda) será idéntica al Alias de la dirección de correo electrónico principal del destinatario.
  • El sufijo de la dirección de correo electrónico (la parte derecha de la dirección de correo electrónico) utilizará el “NUEVO sufijo de nombre de dominio
    - “o365pilot.com“.

Agregue una nueva dirección de correo electrónico proxy utilizando un sufijo de nombre de dominio específico.

$Domainsuffix = Read-Host "Type the name of the Domain name suffix"
$AllMailboxes = Get-Mailbox -ResultSize Unlimited
Foreach ($Mailbox in $AllMailboxes) {
    # Creating NEW E-mail address that contracted in the following way: Take the existing recipient Alias name + use the NEW Domain name as a domain suffix + "Bind" the Alias name + the NEW Domain name suffix.
    $NewAddress = $Mailbox.Alias + "@$Domainsuffix"
    # "Store" all existing E-mail addresses + add the NEW E-mail address as an additional E-mail address.
    $Mailbox.EmailAddresses += $NewAddress
    # Assign the NEW E-mail address to the existing Exchange Online recipient
    Set-Mailbox -Identity $Mailbox.Alias -EmailAddresses $Mailbox.EmailAddresses #-whatif
}

2. Reemplace el sufijo del nombre de dominio de la dirección de correo electrónico principal con un NUEVO sufijo de nombre de dominio | modo masivo

En la siguiente sección, revisamos el proceso de uso del script masivo de PowerShell, que realizará la tarea de:
Reemplazar la dirección de correo electrónico principal existente con una NUEVA dirección de correo electrónico principal que use un sufijo de nombre de dominio diferente para cada uno de los destinatarios del buzón de Exchange Online.

Se nos pidió que implementáramos las siguientes tareas:

  • Reemplace la dirección de correo electrónico principal actual que usa el nombre de dominio: “o365info.com” con una NUEVA dirección de correo electrónico principal, que usa el sufijo del nombre de dominio: o365pilot.com
  • El nombre de alias del destinatario de Exchange (la parte derecha de la dirección de correo electrónico) seguirá siendo el mismo. En otras palabras, nos gustaría mantener el nombre de alias existente de la dirección de correo electrónico principal actual y reemplazar la "parte izquierda" (sufijo del nombre de dominio) con un NUEVO sufijo de nombre de dominio.
  • La dirección de correo electrónico principal anterior no se eliminará, sino que se guardará como una dirección de correo electrónico Alias
    (dirección de correo electrónico adicional).
  • Se conservarán todas las direcciones de correo electrónico de alias existentes y otras direcciones, como la dirección SIP, de los destinatarios.

Reemplace el sufijo del nombre de dominio de la dirección de correo electrónico principal con un sufijo de nombre de dominio NUEVO.

Foreach ($Mailbox in $AllMailboxes) {
    # Creating NEW E-mail address that contracted in the following way: Take the existing recipient Alias name + use the NEW Domain name as a domain suffix + "Bind" the Alias name + the NEW Domain name suffix.
    $NewAddress = $Mailbox.Alias + "@o365pilot.com"
    Set-Mailbox -Identity $Mailbox.Alias -WindowsEmailAddress $NewAddress #-whatif
}

Implementación de operaciones masivas: trabajo con archivos CSV | Prefijo

En la siguiente sección, revisamos un par de escenarios en los que implementamos la tarea de administrar la tarea "Dirección de correo electrónico", como por ejemplo agregar una dirección de correo electrónico importando la información desde un archivo CSV.

El archivo CSV sirve como un "contenedor lógico" que contiene datos.

En nuestro escenario, el CSV sirve como un contenedor que contiene datos sobre los destinatarios de Exchange Online y su dirección de correo electrónico que nos gustaría agregar.

La estructura de un archivo CSV que usamos en nuestro escenario.

Cada una de las columnas del archivo CSV tiene un nombre de encabezado.

Cuando necesitamos abordar información almacenada en una columna específica, proporcionamos el comando de PowerShell el nombre del encabezado de columna específico.

Técnicamente hablando, el archivo CSV es solo un archivo de texto y podemos usar un editor de texto simple para editar el contenido del archivo.

La mayoría de las veces, usaríamos otra aplicación como Microsoft Excel para editar un archivo CSV porque además editar los datos usando Excel es cómodo.

En la siguiente captura de pantalla, podemos ver un ejemplo del archivo CSV que se abrió en Excel.

Nombres de encabezado de columna de archivo CSV

Cuando utilizamos un archivo CSV, podemos "elegir" cualquier nombre de encabezado de columna que se adapte a nuestras necesidades. Se recomienda elegir un nombre de encabezado de columna significativo y que no utilice espacios.

El archivo CSV incluye tres columnas:

  • La columna denominada - Destinatario (número 1), contiene nuestra "identidad del destinatario". Técnicamente hablando, podemos utilizar varias propiedades del destinatario para definir la "identidad del destinatario".
    Por ejemplo, alias del destinatario, dirección de correo electrónico del destinatario, nombre para mostrar del destinatario y más. En nuestro ejemplo específico, utilizamos el destinatario “Nombre para mostrar” como identidad del destinatario.
  • La columna denominada - PrimaryEmail (número 2) contiene una dirección de correo electrónico de usuario que nos gustaría establecer como “Dirección de correo electrónico principal”. .”
  • La columna denominada - AliasEmail (número 3), contiene una dirección de correo electrónico de usuario que nos gustaría establecer como
    un “Alias E -Correo Electronico."

Importar información desde un archivo CSV

La mayoría de las veces, "obtenemos" la información almacenada en el archivo CSV definiendo una variable que incluye el contenido del comando de PowerShell: Importar-CSV.

En nuestro ejemplo, definimos una variable llamada $Destinatarios, que "contendrá" el contenido del archivo CSV que importamos.

$Recipients = Import-Csv C:\Temp\Recipient-E-mail-addresses.csv

Exportar información desde un archivo CSV

El funcionamiento de “importar información desde un archivo CSV” se basa en un paso previo en el que exportamos la información requerida a un archivo CSV. Puede leer más información sobre el proceso de sintaxis de PowerShell que utilizamos para exportar información a varios tipos de formatos de archivo en el artículo Exportar y mostrar información sobre direcciones de correo electrónico usando PowerShell | Oficina 365 | Parte 6#13.

Respecto al tema de “cuál es la información que exportamos a un archivo”, puedes leer el artículo 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.

1. Actualice la dirección de correo electrónico principal + proxy importando información desde un archivo CSV | modo masivo

En el siguiente ejemplo, debemos cumplir los siguientes requisitos:

  • Reemplazar (eliminar) la dirección de correo electrónico principal existente con una NUEVA dirección de correo electrónico principal almacenada en un archivo CSV.
  • Reemplazar (eliminar) el alias de correo electrónico existente con una NUEVA dirección de alias de correo electrónico almacenada en un archivo CSV.

Reemplace la dirección de correo electrónico principal con una NUEVA dirección de correo electrónico principal almacenada en un archivo CSV.

$Recipients = Import-Csv C:\Temp\Recipient-E-mail-addresses.csv
Foreach ($Mailbox in $Recipients) {
    Set-Mailbox -Identity $Mailbox.Recipient -EmailAddresses $Mailbox.PrimaryEmail, $Mailbox.AliasEmail # -WhatIf
}

2. Actualice la dirección de correo electrónico principal + proxy importando información desde un archivo CSV | Mantener las direcciones de correo electrónico de los destinatarios existentes | modo masivo

En el siguiente ejemplo, debemos cumplir los siguientes requisitos:

  • Reemplazar (eliminar) la dirección de correo electrónico principal existente con una NUEVA dirección de correo electrónico principal almacenada en un archivo CSV.
  • Agregar NUEVA dirección de correo electrónico de alias desde un archivo CSV. La NUEVA dirección de correo electrónico se agregará a la dirección de correo electrónico del destinatario existente como una dirección de correo electrónico adicional.

Tenga en cuenta que, en comparación con el escenario anterior, no deseamos eliminar las direcciones de correo electrónico de alias existentes que el destinatario ya tiene. En su lugar, queremos agregar una dirección de correo electrónico adicional a la "matriz" existente de direcciones de correo electrónico del destinatario.

Reemplace el sufijo del nombre de dominio de la dirección de correo electrónico principal con un NUEVO sufijo de nombre de dominio.

$Recipients = Import-Csv C:\Temp\Recipient-E-mail-addresses.csv
Foreach ($Mailbox in $Recipients) {
    Set-Mailbox -Identity $Mailbox.Recipient -EmailAddresses @{Add = $Mailbox.AliasEmail } # -WhatIf
}

3. Agregue varias direcciones de correo electrónico proxy importando información desde un archivo CSV | modo masivo

En el siguiente escenario, necesitamos agregar a nuestros destinatarios direcciones de correo electrónico proxy adicionales que se almacenan en un archivo CSV.

  • El archivo CSV almacena las direcciones de correo electrónico proxy en una columna denominada “AliasEmail ”.
  • El nombre de los destinatarios se almacena en una columna denominada - “Destinatario. "

En la siguiente captura de pantalla podemos ver la estructura del archivo CSV.

Agregue varias direcciones de correo electrónico proxy: importe desde un archivo CSV.

Import-Csv C:\temp\Recipient-Proxy-E-mail-addresses.csv | ForEach-Object {
    $Recipient = $_.Recipient
    $ProxyAddresses = $_.AliasEmail -split ';'
    Set-Mailbox -Identity $Recipient -EmailAddresses @{add = $ProxyAddresses }
}

En el próximo artículo, veremos Administrar direcciones de correo electrónico usando PowerShell | Oficina 365 | Referencia de comando | Parte 2#13.

Artículos relacionados