Arbeiten mit Office 365 und Benutzern mit mehreren E-Mail-Adressen

(Update 04.04.2013: Daniel Melanchthon hat in seinem BLOG das selbe Problem aufgegriffen und eine grafische Lösung herausgearbeitet.)

Mit meinem neuem Office 365 Small Business-Paket war das anfängliche Arbeiten noch recht leicht: Benutzer eingerichtet, Domänennamen auf die Office 365 Präsenz umgeleitet, Exchange-Postfächer für die einzelnen Benutzerkonten erzeugt…

Spannend wurde es nun, als ich den Benutzerkonten nach der erfolgreichen Ersteinrichtung zur primären E-Mail-Adresse weitere Adressen mit auf den Weg geben wollte: Während es in der Vorgängerversion der aktuellen Office 365-Pakete über das Exchange Control Panel (ECP) wohl noch eine entsprechende Möglichkeit gab, ist dies zum aktuellen Stand (noch) nicht möglich.

Einen Ausweg bietet hier die PowerShell unter Zuhilfenahme von PowerShell Remoting – aber wie mit Office 365? Ein wenig Recherche brachte Licht ins Dunkele:

Vorbereiten der lokalen PowerShell für die Verbindung mit Office 365

Die native PowerShell benötigt für die Anbindung an Office 365 (und die Fernverwaltung des Active Directory bzw. Exchange Server) die Windows Azure Active Directory Module. Diese lassen sich im Microsoft Download Center herunterladen.

Für den Einsatz dieser Software gelten jedoch einige Voraussetzungen:

  • Windows 7, Windows 8, Windows Server 2008 R2, Windows Server 2012 (evtl. mit einigen Updates)
  • Microsoft .NET Framework 3.51
  • Microsoft Online Services Sign-In Assistant

Der aufgeführte Microsoft Online Services Sign-In Assistant lässt sich ebenfalls im Microsoft Download Center herunterladen.

Die Installation beider Komponenten ist vergleichsweise simpel und bedarf wahrscheinlich keiner genaueren Beschreibung.

Verbinden der PowerShell mit Office 365

Nach der Installation befindet sich auf dem Desktop eine Verknüpfung mit dem Windows Azure Active Directory-Modul für Windows PowerShell. Einerseits kann man diese Verknüpfung ohne Bedenken verwenden, andererseits verbirgt sich dahinter auch nur eine Windows PowerShell, welche automatisch das nun vorhandene Modul MSOnline lädt.

Somit bringt uns auch ein normales PowerShell-Fenster ans Ziel:

Import-Module MSOnline

PowerShell1

Anschließend steht die Verbindung mit dem Online-Dienst an: das Cmdlet New-PSSession bringt das gewünschte Ergebnis, allerdings müssen dann die Authentifizierungsinformationen angegeben werden. PowerShell-typisch lässt sich dies allerdings bereits im Vorfeld bewerkstelligen:

$cred = Get-Credential
$session = New-PSSession –ConfigurationName Microsoft.Exchange –ConnectionUri https://ps.outlook.com/powershell –Credential $cred -Authentication Basic –AllowRedirection
Import-PSSession $session
Connect-MsolService –Credential $cred

 PowerShell2

Erscheint beim Ausführen des Cmdlets Import-PSSession $session eine Fehlermeldung, liegt dies häufig an einer zu restriktiven Ausführungsrichtlinie für Skripts. Hier sorgt das Cmdlet Set-ExecutionPolicy RemoteSigned für Abhilfe.

Arbeiten mit Exchange-Postfächern

Nachdem wir nun eine Verbindung mit der Office 365-Infrastruktur aufgebaut haben, steht uns die Vielfalt der Verwaltungswerkzeuge zur Verfügung. In meinem konkreten Fall wollte ich lediglich die weiteren E-Mail-Adressen meiner Benutzer auffüllen. Dazu ist es hilfreich, zunächst einmal die vorhandenen Benutzer aufzulisten und ihre derzeitigen E-Mail-Adressen zu kennen:

Get-Mailbox
Get-Mailbox | Select-Object UserPrincipalName,DisplayName,Name,EmailAddresses
Get-Mailbox | Select-Object UserPrincipalName,DisplayName,Name,EmailAddresses | Format-List

PowerShell3

Um nun weitere E-Mail-Adressen den einzelnen Benutzern hinzuzufügen, bieten sich wahlweise folgende Cmdlet-Kombinationen an:

Set-Mailbox <Alias> -EmailAddress <primäre E-Mail-Adresse>,<sekundäre E-Mail-Adresse>
Set-Mailbox <Alias> -EmailAddress <E-Mail-Adresse>,SMTP:<E-Mail-Adresse>,<E-Mail-Adresse>
Die mit SMTP: markierte Adresse wird zur primären Adresse.

Wenn es nur darum geht eine weitere E-Mail-Adresse hinzuzufügen:

$Mailbox = Get-Mailbox <Alias>
$Mailbox.EmailAddress +=(„smtp:<neue E-Mail-Adresse>“)
Set-Mailbox –Identity <Alias> -EmailAddresses
$Mailbox.EmailAddresses

Oder wir möchten E-Mail-Adressen für alle Empfänger ändern:

$mailboxes = Get-Mailbox
ForEach-Object ($mailbox in $mailboxes) {$newAddress = $mailbox.alias + „@neuedomäne.de“ $mailbox.EmailAddresses += $newAddress
Set-Mailbox –Identity $mailbox.alias –EmailAddresses
$mailbox.EmailAddresses }

Wichtig an allen aufgeführten Beispielen ist, dass die verwendeten Domänensuffixe in der Liste der Exchange-seitig akzeptierten Domänen vorhanden sind. Dies lässt sich über die Registrierung neuer Domänen an der grafischen Oberfläche lösen. Wer allerdings gerade schon mit der PowerShell aktiv ist:

Set-MSOLContextCredential –MSOLadminCrendentials (Get-Credential)
Add-MSOLFederatedDomain –DomainName <neuesDomänenSuffix>

Soweit einmal zum Stand meiner bisherigen Office 365-Probleme. Mal sehen, wann sich das nächste Einsatzszenario für die PowerShell anbahnt…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.