Zmień adres aliasu Microsoft 365 na podstawowy adres SMTP za pomocą programu PowerShell

Organizacja będzie używać nowego podstawowego adresu SMTP. Mają już ustawiony nowy adres jako adres aliasu dla wszystkich skrzynek pocztowych. Teraz chcą zamienić go na podstawowy adres SMTP. Jeśli istnieją inne adresy aliasów, należy je pozostawić nietknięte. W tym artykule dowiesz się jak zmienić adres aliasu na podstawowy adres SMTP w Microsoft 365 za pomocą PowerShell.

Wstęp

Skrypt Set-M365PrimaryAddress.ps1 programu PowerShell działa w przypadku usługi Exchange Online (Microsoft 365). Jeśli chcesz zrobić to samo, ale w przypadku lokalnego programu Exchange lub środowiska hybrydowego Exchange, przeczytaj artykuł Zmień adres aliasu na podstawowy adres SMTP za pomocą programu PowerShell.

Notatka:Alias ​​adresu smtp stanie się podstawowym adresem SMTP, a podstawowy adres SMTP stanie się adresem aliasem. Zatem podstawowy adres SMTP nie zostanie usunięty; zostaje on po prostu zamieniony na alias adres smtp.

Zanim zaczniesz

Co się stanie, jeśli dla każdej skrzynki pocztowej nie ustawiono już aliasu adresu? Najlepiej jest przejrzeć artykuł Masowe dodawanie dodatkowego adresu SMTP za pomocą programu PowerShell.

Po sprawdzeniu, że adres aliasu jest ustawiony dla wszystkich skrzynek pocztowych, uruchom skrypt PowerShell Set-M365PrimaryAddress.ps1 z tego artykułu, aby zamienić adres aliasu na podstawowy adres SMTP.

Więcej czytania:Jak wymusić usunięcie kontaktu w Microsoft 365 za pomocą programu PowerShell

Załóżmy, że skończyłeś i chcesz usunąć stary podstawowy adres SMTP, który jest teraz aliasem, możesz przejrzeć artykuł Zbiorcze usuwanie dodatkowego adresu SMTP za pomocą programu PowerShell.

Zawsze lepiej jest robić to etapami, niż jednym skryptem, który zrobi wszystko od razu i masz pewność, że wszystko jest poprawnie ustawione.

Przygotuj skrypt programu PowerShell dla podstawowego adresu SMTP platformy Microsoft 365

Pobierz skrypt Set-M365PrimaryAddress.ps1 PowerShell lub skopiuj i wklej poniższy kod do Notatnika. Podaj nazwęSet-M365Adres Podstawowy.ps1i umieść go wC:skryptyfalcówka. UtwórzSkryptyfolderze, jeśli go nie masz.

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

Zbiorcze ustawienie skryptu PowerShell podstawowego adresu SMTP platformy Microsoft 365

Skrypt działa dla Exchange Online w środowisku Microsoft 365. Uruchom PowerShell jako administrator i połącz się z Exchange Online PowerShell.

Connect-ExchangeOnline

Przejdź do ścieżki skryptu i uruchom skrypt Set-M365PrimaryAddress.ps1. Skrypt przejdzie przez wszystkie skrzynki pocztowe w organizacji Exchange Online.

Notatka:Jest-Co jeśliparametr dla uruchomienia próbnego, aby nic się nie stało, i możesz dwukrotnie sprawdzić dane wyjściowe programu PowerShell, jeśli wszystko wygląda tak, jak chcesz. Gdy wszystko będzie wyglądać dobrze, usuń plik-Co jeśliparametr i ponownie uruchom skrypt.

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

Uruchom skrypt bez-Co jeśliparametr.

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

Jeśli istnieje wiele aliasów dla skrzynki pocztowej, nie zostaną zastosowane żadne zmiany, a dane wyjściowe pokażą te informacje, abyś mógł je sprawdzić.

W tym przykładzie istniejący alias z domeną @exoip.nl zostanie ustawiony zbiorczo jako podstawowy adres 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 wszystko!

Wniosek

Nauczyłeś się, jak zbiorczo ustawić adres aliasu jako podstawowy adres SMTP w Microsoft 365 za pomocą programu PowerShell. Najpierw pobierz skrypt PowerShell Set-M365PrimaryAddress. Następnie dodaj domenę w poleceniu, które ma wyszukiwać w adresach aliasów skrzynek pocztowych. Na koniec uruchom skrypt. Pamiętaj, aby najpierw przetestować z parametrem -WhatIf.

Czy podobał Ci się ten artykuł? Możesz także polubić opcję Wyślij jako alias z aplikacji mobilnej Microsoft Outlook (iOS i Android). Nie zapomnij nas obserwować i udostępnić ten artykuł.

Related Posts