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-TranscriptZbiorcze 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-ExchangeOnlinePrzejdź 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" -WhatIfUruchom 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.logTo 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ł.














