Búsqueda de sitios web

Cambie la dirección de alias de Microsoft 365 a la dirección SMTP principal con PowerShell


La organización utilizará una nueva dirección SMTP principal. Ya tienen esa nueva dirección configurada como dirección alias para todos los buzones. Ahora quieren cambiarla por la dirección SMTP principal. Si hay otras direcciones de alias, es necesario dejarlas intactas. En este artículo, aprenderá cómo cambiar la dirección de alias a la dirección SMTP principal en Microsoft 365 con PowerShell.

Introducción

El script de PowerShell Set-M365PrimaryAddress.ps1 funciona para Exchange Online (Microsoft 365). Si desea hacer lo mismo, pero para Exchange local o en un entorno híbrido de Exchange, lea el artículo Cambiar la dirección de alias a la dirección SMTP principal con PowerShell.

Nota: La dirección SMTP de alias se convierte en la dirección SMTP principal, y la dirección SMTP principal se convertirá en una dirección de alias. Por lo tanto, la dirección SMTP principal no se eliminará; simplemente se intercambia con la dirección SMTP del alias.

Antes de empezar

¿Qué pasa si no hay ninguna dirección de alias configurada para cada buzón? Lo mejor es leer el artículo Agregar de forma masiva una dirección SMTP secundaria con PowerShell.

Una vez que haya verificado que la dirección de alias está configurada para todos los buzones, ejecute el script de PowerShell Set-M365PrimaryAddress.ps1 de este artículo para intercambiar la dirección de alias con la dirección SMTP principal.

Supongamos que ya terminó y desea eliminar la antigua dirección SMTP principal que ahora es una dirección alias, puede consultar el artículo Eliminación masiva de direcciones SMTP secundarias con PowerShell.

Siempre es mejor hacer esto por etapas que con un script que lo hace todo de inmediato para estar seguro de que todo está configurado correctamente.

Preparar el script de PowerShell de la dirección SMTP principal de Microsoft 365

Descargue el script de PowerShell Set-M365PrimaryAddress.ps1 o copie y pegue el código siguiente en el Bloc de notas. Asígnele el nombre Set-M365PrimaryAddress.ps1 y colóquelo en la carpeta C:\scripts. Cree una carpeta Scripts si no tiene una.

<#
    .SYNOPSIS
    Set-M365PrimaryAddress.ps1

    .DESCRIPTION
    Get the secondary (alias) address from a specified domain and set it as the primary SMTP address
    for all mailbox users in Exchange Online (Microsoft 365). If there is no alias address set with
    the specified domain, it will skip the user and display a message. The primary SMTP address will
    become an alias address and all the secondary email address will remain.

    .LINK
    www.alitajran.com/change-microsoft-365-alias-address-to-primary-smtp-address/

    .NOTES
    Written by: ALI TAJRAN
    Website:    alitajran.com
    X:          x.com/alitajran
    LinkedIn:   linkedin.com/in/alitajran

    .CHANGELOG
    V1.00, 09/01/2024 - Initial version
#>

param (
    [Parameter(Mandatory = $true)]
    [string]$DomainName,
    [switch]$WhatIf
)

# Output will be added to C:\temp folder. Open the log with a text editor.
Start-Transcript -Path C:\temp\Set-M365Primary-SMTP-Address.log -Append

# Specify the domain to set as primary SMTP
$primarySMTPDomain = "@" + $DomainName

# Get all mailbox users
$users = Get-Mailbox -ResultSize Unlimited

foreach ($user in $users) {
    $currentPrimarySMTP = $user.PrimarySmtpAddress.ToString()
    $allEmailAddresses = $user.EmailAddresses
    $aliasAddresses = $allEmailAddresses | Where-Object { $_ -clike "smtp:*$primarySMTPDomain" }

    # Check if the current primary SMTP address ends with the specified domain
    if ($currentPrimarySMTP -like "*$primarySMTPDomain") {
        Write-Host "Skipping $($user.DisplayName) - Primary SMTP already ends with $primarySMTPDomain" -ForegroundColor Yellow
    }
    elseif ($aliasAddresses.Count -eq 1) {
        $newPrimarySMTP = $aliasAddresses -replace "smtp:", "SMTP:"
        Write-Host "Updating primary SMTP for $($user.DisplayName) to $newPrimarySMTP" -ForegroundColor Green

        # Combine new primary with other addresses (keeping all existing addresses)
        $updatedAddresses = @($newPrimarySMTP) + ($allEmailAddresses -replace "SMTP:", "smtp:" | Where-Object { $_ -ne $newPrimarySMTP })

        # Set the new primary SMTP address
        if ($WhatIf) {
            Set-Mailbox -Identity $user -EmailAddresses $updatedAddresses -WhatIf
        }
        else {
            Set-Mailbox -Identity $user -EmailAddresses $updatedAddresses
        }
    }
    elseif ($aliasAddresses.Count -eq 0) {
        Write-Host "No alias address found for $($user.DisplayName) - Primary SMTP not updated" -ForegroundColor Cyan
    }
    else {
        Write-Host "Multiple alias addresses found for $($user.DisplayName) - Primary SMTP not updated" -ForegroundColor Red
    }
}

Stop-Transcript

Configuración masiva del script de PowerShell de la dirección SMTP principal de Microsoft 365

El script funciona para Exchange Online en un entorno de Microsoft 365. Ejecute PowerShell como administrador y conéctese a Exchange Online PowerShell.

Connect-ExchangeOnline

Vaya a la ruta del script y ejecute el script Set-M365PrimaryAddress.ps1. El script revisará todos los buzones de correo de la organización Exchange Online.

Nota: Hay un parámetro -WhatIf para una ejecución en seco, de modo que no suceda nada y puede volver a verificar la salida de PowerShell si todo se ve como lo desea. Una vez que todo se vea bien, elimine el parámetro -WhatIf y vuelva a ejecutar el script.

C:\scripts\.\Set-M365PrimaryAddress.ps1 -DomainName "exoip.nl" -WhatIf

Ejecute el script sin el parámetro -WhatIf.

C:\scripts\.\Set-M365PrimaryAddress.ps1 -DomainName "exoip.nl"

Si existen varias direcciones de alias para un buzón, no se aplicará ningún cambio y el resultado mostrará esa información para que pueda consultarla.

En este ejemplo, la dirección de alias existente con el dominio @exoip.nl se establecerá de forma masiva como la dirección SMTP principal.

Transcript started, output file is C:\temp\Set-M365Primary-SMTP-Address.log
Multiple alias addresses found for Adam Clark - Primary SMTP not updated
No alias address found for ALI TAJRAN - Primary SMTP not updated
Updating primary SMTP for Alison Bell to SMTP:Alison.Bell@exoip.nl
No alias address found for Grace Rees - Primary SMTP not updated
Skipping Jeff Baker - Primary SMTP already ends with @tajran.com
No alias address found for John Maverick - Primary SMTP not updated
No alias address found for Joshua Hunter - Primary SMTP not updated
Updating primary SMTP for Zoë Roberts to SMTP:Zoe.Roberts@exoip.nl
Transcript stopped, output file is C:\temp\Set-M365Primary-SMTP-Address.log

¡Eso es todo!

Leer más: Encuentre direcciones de correo electrónico con PowerShell »

Conclusión

Aprendió a configurar de forma masiva una dirección de alias como dirección SMTP principal en Microsoft 365 con PowerShell. Primero, descargue el script de PowerShell Set-M365PrimaryAddress. Luego, agregue el dominio en el comando que desea que busque en las direcciones de alias del buzón. Por último, ejecute el script. Recuerde probar primero con el parámetro -WhatIf.

¿Disfrutaste este artículo? También te puede interesar Enviar como alias desde la aplicación móvil Microsoft Outlook (iOS y Android). No olvides seguirnos y compartir este artículo.

Artículos relacionados