Ändern Sie die Microsoft 365-Aliasadresse mit PowerShell in die primäre SMTP-Adresse

Die Organisation wird eine neue primäre SMTP-Adresse verwenden. Sie haben diese neue Adresse bereits als Alias-Adresse für alle Postfächer festgelegt. Jetzt wollen sie diese mit der primären SMTP-Adresse austauschen. Falls weitere Alias-Adressen vorhanden sind, müssen diese unberührt bleiben. In diesem Artikel erfahren Sie, wie Sie mit PowerShell die Alias-Adresse in die primäre SMTP-Adresse in Microsoft 365 ändern.

Einführung

Das PowerShell-Skript „Set-M365PrimaryAddress.ps1“ funktioniert für Exchange Online (Microsoft 365). Wenn Sie dasselbe tun möchten, jedoch für eine lokale Exchange-Umgebung oder eine Exchange-Hybridumgebung, lesen Sie den Artikel Aliasadresse mit PowerShell in primäre SMTP-Adresse ändern.

Notiz:Die Alias-SMTP-Adresse wird zur primären SMTP-Adresse und die primäre SMTP-Adresse wird zu einer Alias-Adresse. Die primäre SMTP-Adresse wird also nicht entfernt; Es wird einfach mit der Alias-SMTP-Adresse ausgetauscht.

Bevor Sie beginnen

Was passiert, wenn nicht für jedes Postfach bereits eine Alias-Adresse festgelegt ist? Am besten lesen Sie den Artikel Bulk-Hinzufügen sekundärer SMTP-Adressen mit PowerShell durch.

Nachdem Sie überprüft haben, dass die Alias-Adresse für alle Postfächer festgelegt ist, führen Sie das PowerShell-Skript „Set-M365PrimaryAddress.ps1“ aus diesem Artikel aus, um die Alias-Adresse mit der primären SMTP-Adresse auszutauschen.

Mehr Lektüre:So erzwingen Sie das Entfernen von Kontakten in Microsoft 365 mit PowerShell

Angenommen, Sie sind fertig und möchten die alte primäre SMTP-Adresse entfernen, die jetzt eine Alias-Adresse ist. Sie können den Artikel Massenentfernung sekundärer SMTP-Adressen mit PowerShell lesen.

Es ist immer besser, dies schrittweise zu tun, als mit einem Skript, das alles sofort erledigt, damit Sie sicher sein können, dass alles richtig eingestellt ist.

Bereiten Sie das PowerShell-Skript zum Festlegen der primären SMTP-Adresse von Microsoft 365 vor

Laden Sie das PowerShell-Skript „Set-M365PrimaryAddress.ps1“ herunter oder kopieren Sie den folgenden Code und fügen Sie ihn in Notepad ein. Geben Sie ihm den NamenSet-M365PrimaryAddress.ps1und legen Sie es in dieC:SkripteOrdner. Erstellen Sie eineSkripteOrdner, falls Sie noch keinen haben.

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

PowerShell-Skript zur Massenfestlegung der primären SMTP-Adresse von Microsoft 365

Das Skript funktioniert für Exchange Online in einer Microsoft 365-Umgebung. Führen Sie PowerShell als Administrator aus und stellen Sie eine Verbindung zu Exchange Online PowerShell her.

Connect-ExchangeOnline

Gehen Sie zum Skriptpfad und führen Sie das Skript „Set-M365PrimaryAddress.ps1“ aus. Das Skript durchsucht alle Postfächer in der Exchange Online-Organisation.

Notiz:Es gibt eine-Was ist, wennParameter für einen Probelauf, damit nichts passiert, und Sie können die PowerShell-Ausgabe noch einmal überprüfen, ob alles wie gewünscht aussieht. Sobald alles gut aussieht, entfernen Sie die-Was ist, wennParameter und führen Sie das Skript erneut aus.

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

Führen Sie das Skript ohne aus-Was ist, wennParameter.

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

Wenn mehrere Alias-Adressen für ein Postfach vorhanden sind, werden keine Änderungen übernommen und die Ausgabe zeigt diese Informationen an, damit Sie sie überprüfen können.

In diesem Beispiel wird die bestehende Alias-Adresse mit der Domäne @exoip.nl in großen Mengen als primäre SMTP-Adresse festgelegt.

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

Das ist es!

Abschluss

Sie haben gelernt, wie Sie mit PowerShell eine Aliasadresse in großen Mengen als primäre SMTP-Adresse in Microsoft 365 festlegen. Laden Sie zunächst das PowerShell-Skript „Set-M365PrimaryAddress“ herunter. Fügen Sie dann die Domäne in den Befehl ein, nach dem in den Postfach-Aliasadressen gesucht werden soll. Führen Sie abschließend das Skript aus. Denken Sie daran, zuerst mit dem Parameter -WhatIf zu testen.

Hat Ihnen dieser Artikel gefallen? Möglicherweise gefällt Ihnen auch „Als Alias ​​senden“ aus der mobilen Microsoft Outlook-App (iOS und Android). Vergessen Sie nicht, uns zu folgen und diesen Artikel zu teilen.

Related Posts