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

Frage Microsoft Exchange Server

Mitglied: gelbeseiten

gelbeseiten (Level 1) - Jetzt verbinden

16.05.2014, aktualisiert 20:07 Uhr, 4217 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
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 13 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 14 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 21 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...