Ändra Microsoft 365-aliasadress till primär SMTP-adress med PowerShell

Organisationen kommer att använda en ny primär SMTP-adress. De har redan den nya adressen inställd som en aliasadress för alla brevlådor. Nu vill de byta ut den med den primära SMTP-adressen. Om det finns andra aliasadresser måste de lämnas orörda. I den här artikeln kommer du att lära dig hur du ändrar aliasadressen till den primära SMTP-adressen i Microsoft 365 med PowerShell.

Introduktion

Set-M365PrimaryAddress.ps1 PowerShell-skriptet fungerar för Exchange Online (Microsoft 365). Om du gillar att göra detsamma men för Exchange lokalt eller Exchange Hybrid-miljö, läs artikeln Ändra aliasadress till primär SMTP-adress med PowerShell.

Notera:Alias ​​smtp-adressen blir den primära SMTP-adressen och den primära SMTP-adressen blir en aliasadress. Så den primära SMTP-adressen kommer inte att tas bort; det byts bara ut med alias smtp-adressen.

Innan du börjar

Vad händer om det inte finns någon aliasadress redan inställd för varje brevlåda? Det bästa är att gå igenom artikeln Bulk add sekundär SMTP-adress med PowerShell.

När du har verifierat att aliasadressen är inställd för alla postlådor kör du Set-M365PrimaryAddress.ps1 PowerShell-skriptet från den här artikeln för att byta ut aliasadressen med den primära SMTP-adressen.

Mer läsning:Så här tvingar du bort kontakt i Microsoft 365 med PowerShell

Anta att du är klar och vill ta bort den gamla primära SMTP-adressen som nu är en aliasadress, kan du gå igenom artikeln Massta bort sekundär SMTP-adress med PowerShell.

Det är alltid bättre att göra detta i etapper än med ett skript som gör allt omedelbart så att du är säker på att allt är korrekt inställt.

Förbered uppsättningen Microsoft 365 Primär SMTP-adress PowerShell-skript

Ladda ner Set-M365PrimaryAddress.ps1 PowerShell-skriptet eller kopiera och klistra in koden nedan i Anteckningar. Ge det namnetSet-M365PrimaryAddress.ps1och placera den iC:skriptmapp. Skapa enManusmapp om du inte har en.

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

Bulkuppsättning Microsoft 365 Primär SMTP-adress PowerShell-skript

Skriptet fungerar för Exchange Online i en Microsoft 365-miljö. Kör PowerShell som administratör och anslut till Exchange Online PowerShell.

Connect-ExchangeOnline

Gå till skriptsökvägen och kör skriptet Set-M365PrimaryAddress.ps1. Skriptet kommer att gå igenom alla brevlådor i Exchange Online-organisationen.

Notera:Det finns en-Vad omparameter för en torrkörning så att inget händer, och du kan dubbelkolla PowerShell-utgången om allt ser ut som du vill. När allt ser bra ut, ta bort-Vad omparameter och kör skriptet igen.

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

Kör skriptet utan-Vad omparameter.

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

Om det finns flera aliasadresser för en postlåda kommer den inte att tillämpa några ändringar, och utdata visar den informationen så att du kan titta på den.

I det här exemplet kommer den befintliga aliasadressen med domänen @exoip.nl att ställas in i bulk som primär SMTP-adress.

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

Det är det!

Slutsats

Du lärde dig hur man bulkställer in aliasadress som primär SMTP-adress i Microsoft 365 med PowerShell. Ladda först ner Set-M365PrimaryAddress PowerShell-skriptet. Lägg sedan till domänen i kommandot du vill att den ska söka efter i postlådealiasadresserna. Kör till sist skriptet. Kom ihåg att testa först med parametern -WhatIf.

Gillade du den här artikeln? Du kanske också gillar Skicka som alias från Microsoft Outlook-mobilappen (iOS och Android). Glöm inte att följa oss och dela den här artikeln.

Related Posts