Έχετε ήδη την κύρια διεύθυνση SMTP και το ψευδώνυμο για κάθε σύνολο γραμματοκιβωτίων. Ωστόσο, το καθήκον είναι να ανταλλάξετε τη διεύθυνση ψευδωνύμου με την κύρια διεύθυνση SMTP. Ο καλύτερος τρόπος για να γίνει αυτό είναι με το PowerShell. Σε αυτό το άρθρο, θα μάθετε πώς να αλλάξετε τη διεύθυνση ψευδώνυμου στην κύρια διεύθυνση SMTP στον Exchange Server με το PowerShell.
Εισαγωγή
Το σενάριο Set-PrimaryAddress.ps1 PowerShell λειτουργεί για:
- Ανταλλαγή επί τόπου
- Ανταλλαγή Υβριδικό
Εάν θέλετε να κάνετε το ίδιο για περιβάλλον Exchange Online (Microsoft 365), διαβάστε το άρθρο Αλλαγή διεύθυνσης ψευδώνυμου Microsoft 365 σε κύρια διεύθυνση SMTP με το PowerShell.
Σημείωμα:Το ψευδώνυμο διεύθυνση smtp γίνεται η κύρια διεύθυνση SMTP και η κύρια διεύθυνση SMTP θα γίνει διεύθυνση ψευδώνυμο. Επομένως, η κύρια διεύθυνση SMTP δεν θα αφαιρεθεί. απλώς ανταλλάσσεται με το ψευδώνυμο διεύθυνση smtp.
Περισσότερα ανάγνωση:Αλλάξτε τη διεύθυνση ψευδώνυμου Microsoft 365 σε κύρια διεύθυνση SMTP με το PowerShell
Πριν ξεκινήσετε
Τι γίνεται αν δεν υπάρχει ήδη καθορισμένη διεύθυνση ψευδωνύμου για κάθε γραμματοκιβώτιο; Το καλύτερο είναι να διαβάσετε το άρθρο Μαζική προσθήκη δευτερεύουσας διεύθυνσης SMTP με το PowerShell.
Αφού επαληθεύσετε ότι η διεύθυνση ψευδώνυμου έχει οριστεί για όλα τα γραμματοκιβώτια, εκτελέστε τη δέσμη ενεργειών Set-PrimaryAddress.ps1 PowerShell από αυτό το άρθρο για να αντικαταστήσετε τη διεύθυνση ψευδώνυμου με την κύρια διεύθυνση SMTP.
Ας υποθέσουμε ότι τελειώσατε και θέλετε να καταργήσετε την παλιά κύρια διεύθυνση SMTP που είναι πλέον διεύθυνση ψευδώνυμο, μπορείτε να διαβάσετε το άρθρο Μαζική κατάργηση δευτερεύουσας διεύθυνσης SMTP με το PowerShell.
Είναι πάντα καλύτερο να το κάνετε αυτό σταδιακά παρά με ένα σενάριο που τα κάνει όλα αμέσως, ώστε να είστε σίγουροι ότι όλα έχουν ρυθμιστεί σωστά.
Κάντε λήψη του σεναρίου Set-PrimaryAddress.ps1 PowerShell ή αντιγράψτε και επικολλήστε τον παρακάτω κώδικα στο Σημειωματάριο. Δώστε του το όνομαSet-PrimaryAddress.ps1και τοποθετήστε το στοΦάκελος C:scripts. Δημιουργία αΣενάριαφάκελο αν δεν έχετε.
<#
.SYNOPSIS
Set-PrimaryAddress.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 Server and Exchange Hybrid. 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-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, 06/04/2024 - Initial version
V1.10, 09/03/2024 - Added parameters
#>
param (
[Parameter(Mandatory = $true)]
[string]$DomainName,
[switch]$WhatIf,
[switch]$Remote
)
# Output will be added to C:temp folder. Open the log with a text editor.
Start-Transcript -Path C:tempSet-Primary-SMTP-Address.log -Append
# Ensure the domain starts with '@'
$PrimarySMTPDomain = "@" + $DomainName
# Choose the appropriate cmdlets based on the switch
if ($Remote) {
$GetMailboxCmdlet = "Get-RemoteMailbox"
$SetMailboxCmdlet = "Set-RemoteMailbox"
}
else {
$GetMailboxCmdlet = "Get-Mailbox"
$SetMailboxCmdlet = "Set-Mailbox"
}
# Get all mailbox users
$users = Invoke-Expression "$GetMailboxCmdlet -ResultSize Unlimited"
foreach ($user in $users) {
$currentPrimarySMTP = $user.PrimarySmtpAddress.ToString()
$aliasAddresses = $user.EmailAddresses | Where-Object { $_ -clike "smtp*" -and $_ -clike "*$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:", ""
Write-Host "Updating primary SMTP for $($user.DisplayName) to $newPrimarySMTP" -ForegroundColor Green
# Set the new primary SMTP address
if ($WhatIf) {
Invoke-Expression "$SetMailboxCmdlet -Identity '$($user.Identity)' -PrimarySmtpAddress '$newPrimarySMTP' -EmailAddressPolicyEnabled `$false -WhatIf"
}
else {
Invoke-Expression "$SetMailboxCmdlet -Identity '$($user.Identity)' -PrimarySmtpAddress '$newPrimarySMTP' -EmailAddressPolicyEnabled `$false"
}
}
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Μαζικό σύνολο Κύρια διεύθυνση SMTP σενάριο PowerShell
Το σενάριο λειτουργεί για περιβάλλοντα Exchange on-premises και Exchange Hybrid. Είναι σημαντικό να εκτελείτε το Exchange Management Shell ως διαχειριστής.
Μεταβείτε στη διαδρομή του σεναρίου και εκτελέστε τη δέσμη ενεργειών Set-PrimaryAddress.ps1. Το σενάριο θα περάσει από όλα τα γραμματοκιβώτια στον οργανισμό Exchange.
C:scripts.Set-PrimaryAddress.ps1 -DomainName "exoip.nl" -WhatIfΑς υποθέσουμε ότι θέλετε να στοχεύσετε τα γραμματοκιβώτια cloud σε ένα περιβάλλον Exchange Hybrid, πρέπει να προσθέσετε το-Μακρινόςπαράμετρος. Αυτό θα αλλάξει από Get-Mailbox σε Get-RemoteMailbox για να ανακτηθούν όλα τα γραμματοκιβώτια cloud και το Set-Mailbox θα αλλάξει σε Set-RemoteMailbox για να εφαρμοστούν οι αλλαγές στα γραμματοκιβώτια cloud.
C:scripts.Set-PrimaryAddress.ps1 -DomainName "exoip.nl" -Remote -WhatIfΣημείωμα:Υπάρχει ένα-Τι κι ανπαράμετρος για στεγνή εκτέλεση, ώστε να μην συμβεί τίποτα και μπορείτε να ελέγξετε ξανά την έξοδο PowerShell εάν όλα φαίνονται όπως θέλετε. Μόλις όλα φαίνονται καλά, αφαιρέστε το-Τι κι ανπαράμετρο και εκτελέστε ξανά το σενάριο.
C:scripts.Set-PrimaryAddress.ps1 -DomainName "exoip.nl"Εάν υπάρχουν πολλές διευθύνσεις ψευδωνύμων για ένα γραμματοκιβώτιο, δεν θα εφαρμοστούν αλλαγές και η έξοδος θα εμφανίσει αυτές τις πληροφορίες, ώστε να μπορείτε να τις αναζητήσετε.
Σε αυτό το παράδειγμα, η υπάρχουσα διεύθυνση ψευδωνύμου με τον τομέα @exoip.nl θα οριστεί μαζικά ως η κύρια διεύθυνση SMTP.
Transcript started, output file is C:tempSet-Primary-SMTP-Address.log
Multiple alias addresses found for Alysia Maverick - Primary SMTP not updated
No alias address found for Boris Campbell - Primary SMTP not updated
Updating primary SMTP for Christopher Payne to [email protected]
No alias address found for Discovery Search Mailbox - Primary SMTP not updated
Updating primary SMTP for James Paterson to [email protected]
No alias address found for Fraser, Max - Primary SMTP not updated
Updating primary SMTP for Nicholas Murray to [email protected]
No alias address found for Richard Hunter - Primary SMTP not updated
No alias address found for sharedmailboxonprem - Primary SMTP not updated
Transcript stopped, output file is C:tempSet-Primary-SMTP-Address.logΗ υπάρχουσα διεύθυνση ψευδώνυμου smtp είναι πλέον η κύρια διεύθυνση SMTP για όλους τους χρήστες.
Σύναψη
Μάθατε πώς να ορίζετε μαζικά τη διεύθυνση ψευδωνύμου ως κύρια διεύθυνση SMTP με το PowerShell. Πρώτα, κατεβάστε το σενάριο Set-PrimaryAddress PowerShell. Στη συνέχεια, προσθέστε τον τομέα στην εντολή που θέλετε να αναζητήσει στις διευθύνσεις ψευδωνύμου γραμματοκιβωτίου. Επιτέλους, εκτελέστε το σενάριο. Θυμηθείτε να δοκιμάσετε πρώτα με την παράμετρο -WhatIf.
Σας άρεσε αυτό το άρθρο; Μπορεί επίσης να σας αρέσει η Δημιουργία κοινόχρηστου γραμματοκιβωτίου με το ίδιο ψευδώνυμο. Μην ξεχάσετε να μας ακολουθήσετε και να μοιραστείτε αυτό το άρθρο.













