Zusätzliche E-Mail Adresse zu einer bestehenden via Powershell hinzufügen
Hallo,
wir ändern demnächst undere E-Mail- und Web-Domäne. Ich möchte für einen bestimmten Zeitraum beide E-Mail Adressen auf einem Postfach behalten.
Wir haben ca. 150 Postfächer, bei denen das geändert werden muss.
Ich habe bisher folgendes Script, um die set as reply address zu setzen:
get-mailbox -database Exchange_DB| select Name,PrimarySMTPAddress | export-csv c:\temp\mbx_primarysmtp.csv -Encoding Unicode -Delimiter ";"
dann setze ich manuel via notepad und find and replace die richtige Adresse ein
Vorher:
TYPE Selected.Microsoft.Exchange.Data.Directory.Management.Mailbox
"Name";"PrimarySmtpAddress"
Ben1; ben1@alte-domaene.de
Ben2; Ben2@alte-domaene.de
Ben3; Ben3@alte-domaene.de
Ben4; Ben4@alte-domaene.de
etc.
TYPE Selected.Microsoft.Exchange.Data.Directory.Management.Mailbox
"Name";"PrimarySmtpAddress"
Ben1; ben1@neu-domaene.de
Ben2; Ben2@neu-domaene.de
Ben3; Ben3@neu-domaene.de
Ben4; Ben4@neu-domaene.de
etc.
Dann lese ich die csv Datei wieder ein:
Import-Csv c:\temp\mbx_primarysmtp.csv -Delimiter ";" | foreach-object {set-mailbox $_.Name -EmailAddresses $_.PrimarySMTPAddress -EmailAddressPolicyEnabled $False}
und lasse mir das Resultat wieder ausgeben:
Get-mailbox -database Exchange_DB | select Name,PrimarySMTPAddress,secondarysmtpaddress
Name PrimarySmtpAddress
------------------
ben1 ben1@neu-domaene.de
ben2 ben2@neu-domaene.de
ben3 ben3@neu-domaene.de
ben4 ben4@neu-domaene.de
Das läuft auch alles wunderbar!
Nur, wollen wir übergangsweise die alte E-Mail Adresse behalten.
So dass im Resultat jenes herauskommen muss:
Name PrimarySmtpAddress Secondarysmtpaddress
-------- ------------ ------------------
ben1 ben1@neu-domaene.de ben1@alte-domaene.de
ben2 ben2@neu-domaene.de ben2@alte-domaene.de
ben3 ben3@neu-domaene.de ben3@alte-domaene.de
ben4 ben4@neu-domaene.de ben4@alte-domaene.de
Hat da jemand einen Lösungsansatz? Oder gar eine Lösung?
Danke!
Gruß
Volkmar
wir ändern demnächst undere E-Mail- und Web-Domäne. Ich möchte für einen bestimmten Zeitraum beide E-Mail Adressen auf einem Postfach behalten.
Wir haben ca. 150 Postfächer, bei denen das geändert werden muss.
Ich habe bisher folgendes Script, um die set as reply address zu setzen:
get-mailbox -database Exchange_DB| select Name,PrimarySMTPAddress | export-csv c:\temp\mbx_primarysmtp.csv -Encoding Unicode -Delimiter ";"
dann setze ich manuel via notepad und find and replace die richtige Adresse ein
Vorher:
TYPE Selected.Microsoft.Exchange.Data.Directory.Management.Mailbox
"Name";"PrimarySmtpAddress"
Ben1; ben1@alte-domaene.de
Ben2; Ben2@alte-domaene.de
Ben3; Ben3@alte-domaene.de
Ben4; Ben4@alte-domaene.de
etc.
TYPE Selected.Microsoft.Exchange.Data.Directory.Management.Mailbox
"Name";"PrimarySmtpAddress"
Ben1; ben1@neu-domaene.de
Ben2; Ben2@neu-domaene.de
Ben3; Ben3@neu-domaene.de
Ben4; Ben4@neu-domaene.de
etc.
Dann lese ich die csv Datei wieder ein:
Import-Csv c:\temp\mbx_primarysmtp.csv -Delimiter ";" | foreach-object {set-mailbox $_.Name -EmailAddresses $_.PrimarySMTPAddress -EmailAddressPolicyEnabled $False}
und lasse mir das Resultat wieder ausgeben:
Get-mailbox -database Exchange_DB | select Name,PrimarySMTPAddress,secondarysmtpaddress
Name PrimarySmtpAddress
------------------
ben1 ben1@neu-domaene.de
ben2 ben2@neu-domaene.de
ben3 ben3@neu-domaene.de
ben4 ben4@neu-domaene.de
Das läuft auch alles wunderbar!
Nur, wollen wir übergangsweise die alte E-Mail Adresse behalten.
So dass im Resultat jenes herauskommen muss:
Name PrimarySmtpAddress Secondarysmtpaddress
-------- ------------ ------------------
ben1 ben1@neu-domaene.de ben1@alte-domaene.de
ben2 ben2@neu-domaene.de ben2@alte-domaene.de
ben3 ben3@neu-domaene.de ben3@alte-domaene.de
ben4 ben4@neu-domaene.de ben4@alte-domaene.de
Hat da jemand einen Lösungsansatz? Oder gar eine Lösung?
Danke!
Gruß
Volkmar
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 238336
Url: https://administrator.de/contentid/238336
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
13 Kommentare
Neuester Kommentar
Hallo Volkmar,
z.B. so
Das Script nimmt den Prefix der neuen primären Mailadresse und baut mit dem alten Domänennamen die alte Adresse zusammen, welche dann dem Postfach mit einer Hashtable und dem Keyword "add" dem Postfach hinzugefügt wird.
siehe auch: http://www.mikepfeiffer.net/2011/12/how-to-add-exchange-proxy-addresses ...
Grüße Uwe
z.B. so
$mailboxes = Get-mailbox -database Exchange_DB
$mailboxes | %{set-mailbox $_.Name -EmailAddresses @{add="$($_.PrimarySmtpAddress.local)@altedomain.com"} -EmailAddressPolicyEnabled $False}
siehe auch: http://www.mikepfeiffer.net/2011/12/how-to-add-exchange-proxy-addresses ...
Grüße Uwe
OK, dann mach es halt so:
(Wenn die Mailboxen schon die neue Primäre Adresse enthalten)
-edit- upgedated ...
Grüße Uwe
(Wenn die Mailboxen schon die neue Primäre Adresse enthalten)
$mailboxes = Get-mailbox -database Exchange_DB
$mailboxes | %{set-mailbox $_.Name -EmailAddresses ("smtp:$($_.PrimarySmtpAddress.toString())","smtp:$($_.PrimarySmtpAddress.local)@altedomain.de")}
Grüße Uwe
OK, das Gleichheitszeichen hatte ich vergessen, dann lässt sich der Exchange 2007 doch etwas bitten ... das hier sollte dort auf jeden Fall funktionieren, gerade auf einen Exchange 2007 in einer VM getestet:
und folgendes geht auch auf einem Exchange 2007:
Grüße Uwe
$mailboxes = Get-mailbox -database Exchange_DB
foreach($mailbox in $mailboxes){
$EmailAddresses = $mailbox.EmailAddresses
$EmailAddresses += "smtp:$($mailbox.PrimarySmtpAddress.local)@altedomain.com"
set-Mailbox $mailbox.Name -EmailAddresses $EmailAddresses -EmailAddressPolicyEnabled $false
}
$mailboxes = Get-mailbox -database Exchange_DB
$mailboxes | %{set-mailbox $_.Name -EmailAddresses ("smtp:$($_.PrimarySmtpAddress.toString())","smtp:$($_.PrimarySmtpAddress.local)@altedomain.de") -EmailAddressPolicyEnabled $false}