Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Zusätzliche E-Mail Adresse zu einer bestehenden via Powershell hinzufügen

Mitglied: gelbeseiten

gelbeseiten (Level 1) - Jetzt verbinden

16.05.2014, aktualisiert 20:07 Uhr, 4413 Aufrufe, 13 Kommentare

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
Mitglied: Dani
16.05.2014 um 20:39 Uhr
Guten Abend Volkmar,
dafür gibt es eigentlich die E-Mailaddress-Policy. Dort einfach die zweite Domain hinzufügen und die Sache ist erledigt. Setzt natürlich vorraus, dass du ein einheitliches Namensschema hast, was bei 150 Postfächern sicher gegeben ist.


Grüße,
Dani
Bitte warten ..
Mitglied: gelbeseiten
16.05.2014, aktualisiert 17.05.2014
Hi Dani!

Danke für Deine Antwort,
Ja, wir haben auch Policies im Einsatz, kann das aber ich nicht einsetzen, da wir verschiede Datenbanken haben und es eben nur auf eine Datenbank anwendung finden darf. Ist etwas kompliziert es hier zu schreiben.
Da wäre mir mit einem Powershellscript eher geholfen =(

danke!
Gruß
Volkmar
Bitte warten ..
Mitglied: colinardo
16.05.2014, aktualisiert 17.05.2014
Hallo Volkmar,
z.B. so
01.
$mailboxes = Get-mailbox -database Exchange_DB 
02.
$mailboxes | %{set-mailbox $_.Name -EmailAddresses @{add="$($_.PrimarySmtpAddress.local)@altedomain.com"} -EmailAddressPolicyEnabled $False}
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
Bitte warten ..
Mitglied: gelbeseiten
17.05.2014 um 10:30 Uhr
Hi Uwe,

danke für deine Hilfe!

Ich habe vergessen zu sagen, dass wir einen Exchange 2007 SP3 Version: 08.03.0342.000 haben, da gibt es so einige Möglichkeiten noch nicht =(

Ich bekomme Fehlermeldungen bei Ausführen des Scripts.
=(

So wie ich die Seite verstehe, ist es für einen Exchange 2010.

Danke!
Gruß
Volkmar
Bitte warten ..
Mitglied: colinardo
17.05.2014, aktualisiert 18.05.2014
OK, dann mach es halt so:
(Wenn die Mailboxen schon die neue Primäre Adresse enthalten)
01.
$mailboxes = Get-mailbox -database Exchange_DB  
02.
$mailboxes | %{set-mailbox $_.Name -EmailAddresses ("smtp:$($_.PrimarySmtpAddress.toString())","smtp:$($_.PrimarySmtpAddress.local)@altedomain.de")}
-edit- upgedated ...

Grüße Uwe
Bitte warten ..
Mitglied: gelbeseiten
17.05.2014 um 12:38 Uhr
Hi Uwe,

danke für Deine Hilfe!

Ich habe das Script so angepasst, aber irgendwas mache ich falsch, oder ich bin zu d..f! =)

Import-Csv c:\temp\mbx_primary-Secondary.csv -Delimiter ";" | foreach-object {set-mailbox $_.Name -EmailAddresses $_.PrimarySMTPAddress, $_.SecondarySMTPAddress -EmailAddressPolicyEnabled $False}

Die CSV Datei sieht so aus:
#TYPE Selected.Microsoft.Exchange.Data.Directory.Management.Mailbox
"Name";"PrimarySmtpAddress";"secondarySMTPAddress"
"ben3";"ben3@neue-domaene.de";"ben3@alte-domaene.de"
"ben1";"ben1@neue-domaene.de";"ben1@alte-domaene.de"
"ben4";"ben4@neue-domaene.de";"ben4@alte-domaene.de"
"ben2";"ben2@neue-domaene.de";"ben2@alte-domaene.de "


Letztendlich kommt diese Fehlermeldung in der Powershell und in den Eigenschaften des Benutzers befindet sich die alte E-Mail Adresse „@alte-domaene.de“

Set-Mailbox : Cannot convert '
ben3@alte-domaene.de' to the type 'Microsoft.Exchange.Data.ProxyAddressCollection
' required by parameter 'EmailAddresses'. Cannot perform this operation with th
e address '
ben3@alte-domaene.de' because it is invalid: The address '
ben3@alte-domaene.de ' is not a valid SMTP address, so a prefix must be specified.
At C:\Scripts\SMTP-Aenderung\SMTP-cmdlet.ps1:19 char:114

Import-Csv c:\temp\mbx_primary-Secondary.csv -Delimiter ";" | foreach-object

{set-mailbox $_.Name -EmailAddresses <<<< $_.PrimarySMTPAddress, $_.SecondaryS
MTPAddress -EmailAddressPolicyEnabled $False}
+ CategoryInfo : InvalidArgument: ( [Set-Mailbox], ParameterBin
dingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.Exchange.Managem
ent.RecipientTasks.SetMailbox

Hast Du noch eine Idee, was das Problem sein kann?
Ich müsste ja eigentlich auch mit zwei csv Dateien arbeiten, denn alle E-Mail Adressen in der csv Datei nach und nach eintragen, das dauert dann doch etwas lange, da könnte ich die Adressen wahrscheinlich auch manuell schneller ändern =(

Wahrscheinlich bin ich wirklich zu d..f =)

Danke Dir!
Bitte warten ..
Mitglied: colinardo
17.05.2014, aktualisiert um 15:09 Uhr
du hast die Klammern um die Mailadressen im Parameter -EMailAddresses vergessen. Habe es dir oben nochmal abgeändert (Nutzung einer calculated property) dann musst du nicht den Umweg über die CSV-Dateien gehen...
Bitte warten ..
Mitglied: gelbeseiten
18.05.2014, aktualisiert um 16:13 Uhr
Hi Uwe,

danke Dir nochmals!

Aber, bekomme ich das nicht hin, jetzt bekomme ich diese Meldung, weiß aber nicht, wo das "=" fehlt:
01.
$mailboxes = Get-mailbox -database Exchange_DB 
02.
$mailboxes | select Name,PrimarySmtpAddress,@{Name="SecondaryEmailAddress";e{"$($_.PrimarySmtpAddress.local)@alte-domaend.de"}} | %{set-Mailbox $_.Name -EmailAddresses ($_.PrimarySmtpAddress,$_.SecondarySmtpAddress) -EmailAddressPolicyEnabled $false} 
03.
 
04.
Missing '=' operator after key in hash literal. 
05.
At C:\Scripts\SMTP-Aenderung\SMTP-Secondary.ps1:2 char:78 
06.
+ $mailboxes | select Name,PrimarySmtpAddress,@{Name="SecondaryEmailAddress";e{ 
07.
 <<<< "$($_.PrimarySmtpAddress.local)@alte-domaene.de"}} | %{set-Mailbox $_.Name 
08.
-EmailAddresses ($_.PrimarySmtpAddress,$_.SecondarySmtpAddress) -EmailAddressPo 
09.
licyEnabled $false} 
10.
    + CategoryInfo          : ParserError: (:) [], ParseException 
11.
    + FullyQualifiedErrorId : MissingEqualsInHashLiteral 
12.
 
13.
 
14.
 
15.
Hier habe ich nach dem "e" das "=" Zeichen gesetzt: 
16.
  
17.
$mailboxes = Get-mailbox -database Echange_DB 
18.
$mailboxes | select Name,PrimarySmtpAddress,@{Name="SecondaryEmailAddress";e={"$($_.PrimarySmtpAddress.local)@alte-domaene.de"}} | %{set-Mailbox $_.Name -EmailAddresses ($_.PrimarySmtpAddress,$_.SecondarySmtpAddress) -EmailAddressPolicyEnabled $false} 
19.
 
20.
 
21.
und ich bekam dann diese Meldung: 
22.
 
23.
Set-Mailbox : Cannot bind parameter 'EmailAddresses'. Cannot convert the "ben3@ 
24.
neu-domaene.de" value of type "Microsoft.Exchange.Data.SmtpAddress" to type " 
25.
Microsoft.Exchange.Data.ProxyAddress". 
26.
At C:\Scripts\SMTP-Aenderung\SMTP-Secondary.ps1:2 char:167 
27.
+ $mailboxes | select Name,PrimarySmtpAddress,@{Name="SecondaryEmailAddress";e= 
28.
{"$($_.PrimarySmtpAddress.local)@alte-domaene.de"}} | %{set-Mailbox $_.Name -Emai 
29.
lAddresses <<<<  ($_.PrimarySmtpAddress,$_.SecondarySmtpAddress) -EmailAddressP 
30.
olicyEnabled $false} 
31.
    + CategoryInfo          : InvalidArgument: (:) [Set-Mailbox], ParameterBin 
32.
   dingException 
33.
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Exchang 
34.
   e.Management.RecipientTasks.SetMailbox 
35.
 
36.
Set-Mailbox : Cannot bind parameter 'EmailAddresses'. Cannot convert the "ben1@ 
37.
neu-domaen.de" value of type "Microsoft.Exchange.Data.SmtpAddress" to type " 
38.
Microsoft.Exchange.Data.ProxyAddress". 
39.
At C:\Scripts\SMTP-Aenderung\SMTP-Secondary.ps1:2 char:167 
40.
+ $mailboxes | select Name,PrimarySmtpAddress,@{Name="SecondaryEmailAddress";e= 
41.
{"$($_.PrimarySmtpAddress.local)@alte-domaene.de"}} | %{set-Mailbox $_.Name -Emai 
42.
lAddresses <<<<  ($_.PrimarySmtpAddress,$_.SecondarySmtpAddress) -EmailAddressP 
43.
olicyEnabled $false} 
44.
    + CategoryInfo          : InvalidArgument: (:) [Set-Mailbox], ParameterBin 
45.
   dingException 
46.
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.Exchang 
47.
   e.Management.RecipientTasks.SetMailbox
Danke Dir nochmals!

Gruß
Volkmar
Bitte warten ..
Mitglied: colinardo
18.05.2014, aktualisiert um 16:45 Uhr
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:
01.
$mailboxes = Get-mailbox -database Exchange_DB 
02.
foreach($mailbox in $mailboxes){ 
03.
	$EmailAddresses = $mailbox.EmailAddresses 
04.
	$EmailAddresses += "smtp:$($mailbox.PrimarySmtpAddress.local)@altedomain.com" 
05.
	set-Mailbox $mailbox.Name -EmailAddresses $EmailAddresses -EmailAddressPolicyEnabled $false 
06.
}
und folgendes geht auch auf einem Exchange 2007:
01.
$mailboxes = Get-mailbox -database Exchange_DB  
02.
$mailboxes | %{set-mailbox $_.Name -EmailAddresses ("smtp:$($_.PrimarySmtpAddress.toString())","smtp:$($_.PrimarySmtpAddress.local)@altedomain.de") -EmailAddressPolicyEnabled $false}
Grüße Uwe
Bitte warten ..
Mitglied: gelbeseiten
18.05.2014 um 16:31 Uhr
Danke für Deinen Aufwand =)
Und das bei sei einem guten Wetter! =)

Ich habe Dein Script so kopiert und nur die Domaene angepasst und bekomme dann diese Meldung.

Unexpected token 'EmailAddresses' in expression or statement.
At C:\Scripts\SMTP-Aenderung\SMTP-Secondary.ps1:2 char:90

foreach($mailbox in $mailboxes){$EmailAddresses = $mailbox.EmailAddresses $Em

ailAddresses <<<< += ($mailbox.PrimarySmtpAddress.local + "@alte-domaene.de") Se
t-Mailbox $mailbox.Name -EmailAddresses $EmailAddresses -EmailAddressPolicyEnab
led $false}
+ CategoryInfo : ParserError: (EmailAddresses:String) [], ParseEx
ception
+ FullyQualifiedErrorId : UnexpectedToken

Wenn Du in der Nähe wärst würde ich Dich auf ein Bier einladen =)

Gruß
Volkmar
Bitte warten ..
Mitglied: colinardo
18.05.2014, aktualisiert um 16:34 Uhr
sorry, aber die Fehler müssen leider bei Dir liegen denn hier geht es einwandfrei ... mach mal ein Update deiner Powershell...
Bitte warten ..
Mitglied: gelbeseiten
18.05.2014 um 16:47 Uhr
Kannst recht haben, ist habe die Powershell 2.0 drauf, ich versuche mal die 3.0 zu installieren, danke!
Ich melde mich!
Bitte warten ..
Mitglied: gelbeseiten
18.05.2014 um 17:04 Uhr
So, aktualsiert
Jetzt bekomme ich diese Meldung:

Name : ConsoleHost
Version : 3.0
InstanceId : b24c46a7-e84d-46b3-b8b3-d1ca7eabefd7
UI : System.Management.Automation.Internal.Host.InternalHostUserI
nterface
CurrentCulture : de-DE
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace


[PS] C:\Scripts\SMTP-Aenderung>.\SMTP-Secondary.ps1
At C:\Scripts\SMTP-Aenderung\SMTP-Secondary.ps1:2 char:75

foreach($mailbox in $mailboxes){$EmailAddresses = $mailbox.EmailAddresses

$Email ...

~~~~~~
Unexpected token '$EmailAddresses' in expression or statement.
At C:\Scripts\SMTP-Aenderung\SMTP-Secondary.ps1:2 char:149

... alte-domaene.de") Set-Mailbox $mailbox.Name -EmailAddresses $EmailAddresses

-EmailA ...

~~~~~~~~~~~

Unexpected token 'Set-Mailbox' in expression or statement.
+ CategoryInfo : ParserError: ( [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken


Ich glaube, ich werde Montag alles zufuß machen, zu erst die neue Adresse per Powershell setzen und die alte noch nachtragen =(

Danke Dir, dir einen schönen Sonntag noch!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell E-Mail Adressen auslesen
gelöst Frage von geocastBatch & Shell4 Kommentare

Hallo Zusammen ich hänge bei einem kleinen Problem. Ich will in Office 365 aus einer Gruppe alle E-Mail Adressen ...

Linux

Mailserver für bestehende Mail-Adressen

Frage von sojosLinux7 Kommentare

Hallo, ich betreue momentan ein kleines Firmennetzwerk (1 Win2012R2; 14 Clients). Diese Firma hat ein 1und1-Konto/Domain für eMails. Also ...

Batch & Shell

E-Mail Adresse anlegen am angelegten User Powershell

gelöst Frage von patrickebertBatch & Shell5 Kommentare

Hallo Liebe Leute, bin gerade dabei ein PowershellScript zu schreiben welches an einem angelegten User die E-Mail Adresse am ...

Outlook & Mail

E-Mail versenden mit PowerShell

gelöst Frage von 112TimoOutlook & Mail6 Kommentare

Hallo liebe Comunity, ich soll mit hilfe der Powershell eine E-Mail mit Dateianhang versenden können, jedoch zeigt diese mir ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

Grafikkarten & Monitore
4k EIZO Monitor, Fernseher und Splitter
Frage von LerxxeyGrafikkarten & Monitore9 Kommentare

Hallo Zusammen, vielleicht könnt ihr mir bei einem Problem helfen wo ich einfach nicht mehr weiterkomme Und zwar haben ...

TK-Netze & Geräte
Fax im Betrieb
Frage von gansa28TK-Netze & Geräte6 Kommentare

Hallo zusammen, Endlich wurden meine Gebete Erhört und der Rechner meines Bekannten dem ich etwas unter die Arme greife, ...

Humor (lol)
Nerd Zeitschrift gesucht
Frage von 2SeitenHumor (lol)6 Kommentare

Hey Zusammen, Ich suche eine Zeitschrift bei der es ums technische Basteln geht. Pc zusammenschrauben, Arduino Projekte, Server Tipps ...