Změňte adresu aliasu Microsoft 365 na primární adresu SMTP pomocí PowerShellu

Organizace bude používat novou primární adresu SMTP. Tuto novou adresu již mají nastavenou jako aliasovou adresu pro všechny poštovní schránky. Nyní ji chtějí vyměnit za primární adresu SMTP. Pokud existují další aliasové adresy, je třeba je ponechat nedotčené. V tomto článku se dozvíte, jak změnit aliasovou adresu na primární adresu SMTP v Microsoft 365 s PowerShell.

Zavedení

Skript PowerShell Set-M365PrimaryAddress.ps1 funguje pro Exchange Online (Microsoft 365). Pokud chcete udělat totéž, ale pro prostředí Exchange on-premise nebo Exchange Hybrid, přečtěte si článek Změna adresy aliasu na primární adresu SMTP pomocí PowerShellu.

Poznámka:Aliasová adresa SMTP se stane primární adresou SMTP a primární adresa SMTP se stane aliasovou adresou. Primární adresa SMTP tedy nebude odstraněna; jen se zamění za alias smtp adresu.

Než začnete

Co když pro každou poštovní schránku již není nastaven žádný alias? Nejlepší je projít si článek Hromadné přidání sekundární SMTP adresy pomocí PowerShellu.

Jakmile ověříte, že je aliasová adresa nastavena pro všechny poštovní schránky, spusťte skript Set-M365PrimaryAddress.ps1 PowerShell z tohoto článku a zaměňte aliasovou adresu za primární adresu SMTP.

Další čtení:Jak vynutit odebrání kontaktu v Microsoft 365 pomocí PowerShellu

Předpokládejme, že jste hotovi a chcete odstranit starou primární adresu SMTP, která je nyní aliasovou adresou, můžete si projít článek Hromadné odstranění sekundární adresy SMTP pomocí PowerShellu.

Vždy je lepší to udělat po etapách než s jedním skriptem, který to udělá okamžitě, takže máte jistotu, že je vše správně nastaveno.

Připravte sadu skriptu PowerShell primární adresy SMTP Microsoft 365

Stáhněte si skript PowerShell Set-M365PrimaryAddress.ps1 nebo zkopírujte a vložte níže uvedený kód do poznámkového bloku. Dejte tomu jménoSet-M365PrimaryAddress.ps1a umístěte jej doC: skriptysložku. Vytvořte aSkriptysložku, pokud žádnou nemáte.

<#
    .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:tempSet-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

Hromadné nastavení primární adresy SMTP Microsoft 365 skript PowerShell

Skript funguje pro Exchange Online v prostředí Microsoft 365. Spusťte PowerShell jako správce a připojte se k Exchange Online PowerShell.

Connect-ExchangeOnline

Přejděte na cestu skriptu a spusťte skript Set-M365PrimaryAddress.ps1. Skript projde všemi poštovními schránkami v organizaci Exchange Online.

Poznámka:Existuje a-Co kdybyparametr pro suchý běh, aby se nic nestalo, a můžete dvakrát zkontrolovat výstup PowerShellu, pokud vše vypadá, jak chcete. Jakmile vše vypadá dobře, odstraňte-Co kdybyparametr a znovu spusťte skript.

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

Spusťte skript bez-Co kdybyparametr.

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

Pokud existuje více aliasových adres pro poštovní schránku, nepoužijí se žádné změny a na výstupu se zobrazí tato informace, abyste se do ní mohli podívat.

V tomto příkladu bude stávající alias adresa s doménou @exoip.nl hromadně nastavena jako primární adresa SMTP.

Transcript started, output file is C:tempSet-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:[email protected]
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:[email protected]
Transcript stopped, output file is C:tempSet-M365Primary-SMTP-Address.log

To je vše!

Závěr

Naučili jste se, jak hromadně nastavit aliasovou adresu jako primární adresu SMTP v Microsoft 365 s PowerShell. Nejprve si stáhněte skript Set-M365PrimaryAddress PowerShell. Poté do příkazu přidejte doménu, kterou chcete vyhledat v aliasových adresách poštovní schránky. Nakonec spusťte skript. Nezapomeňte nejprve otestovat s parametrem -WhatIf.

Líbil se vám tento článek? Také se vám může líbit Odeslat jako alias z mobilní aplikace Microsoft Outlook (iOS a Android). Nezapomeňte nás sledovat a sdílet tento článek.

Related Posts