Suchen

Microsoft Exchange Server – Tipps und Tricks Teil I Verwalten von Postfächer mit der Exchange Management Shell

Autor / Redakteur: Frank Castro Lieberwirth / Dipl.-Ing. (FH) Andreas Donner

Der Microsoft Exchange Server 2007 enthält eine erweiterte Microsoft PowerShell, die dem Administrator unter dem Namen Exchange-Verwaltungsshell die Möglichkeit gibt, Skripte und Befehlszeilen einzugeben. Mit der Shell können Exchange Server 2007 und Exchange Server 2003 administriert werden. IP-Insider zeigt an einem Beispiel, wie einfach Postfächer verwaltet werden können.

Firmen zum Thema

Der Exchange Server 2007 kann über eine erweiterte PowerShell administriert werden
Der Exchange Server 2007 kann über eine erweiterte PowerShell administriert werden
( Archiv: Vogel Business Media )

Der folgende Artikel beschreibt die Exchange-Verwaltungskonsole sowie allgemeine Kommandos, die einen ersten Einstieg in die Shell ermöglichen. Nachfolgend wird anhand von Beispielen gezeigt, wie Postfächer aufgelistet und verwaltet werden können. Exemplarisch wird hierbei die Funktionsweise der Shell an den Befehlen „Get-Mailbox“ und „Set-Mailbox“ gezeigt.

Der Exchange Server 2007 besitzt zwei Verwaltungsschnittstellen: Die Exchange-Verwaltungskonsole (vormals Exchange-System Manager) und die Exchange-Verwaltungsshell. Die bisherige Verwaltungsschnittstelle, die bei Exchange Server 2003 ihren Dienst getan hat, ist im Prinzip abgelöst. Die Exchange-Verwaltungsshell ist eine erweiterte Microsoft PowerShell, in der einzelne Befehle oder eine Abfolge von Befehlen eingegeben werden können.

Bildergalerie
Bildergalerie mit 6 Bildern

Die Shell lässt sich über zwei Arten starten, wobei die Verwendung des Links in der Menüleiste sicherlich die einfachste und schnellste ist.

  • Link im Startmenü unter „Programme\Microsoft Exchange Server 2007\Exchange-Verwaltungsshell“ (siehe Abbildung 1)
  • Aufruf der PowerShell unter „Programme\Windows PowerShell 1.0“ und der Eingabe von „Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin“

Kommandobefehle, die Cmdlets

Microsoft hat eine „neue“ Befehlsart eingeführt, die sog. Cmdlets (gesprochen „Commandlets“). Im Gegensatz zu den Befehlen in der Windows-Kommandozeile werden die Cmdlets allerdings nicht als separater Prozess, sondern im Kontext der PowerShell ausgeführt. Für Exchange stehen laut Microsoft mehr als 360 Cmdlets zur Verfügung. Hinzu kommen die in der PowerShell integrierten Verwaltungs-Cmdlets. Eine aktive Syntax-Hilfe oder ein richtiges Autovervollständigen, ähnlich dem Visual Studio, gibt es aber leider nicht. Die Eingaben sind nicht Case-Sensitiv, so muss nicht auf Groß- und Kleinschreibung geachtet werden.

Die Cmdlets werden als Verb-Nomen-Paare dargestellt, d.h. ein Befehl besteht aus einem Verb, wie „Get“ und einem mit einem Bindestrich (ohne Leerzeichen) verbundenen Nomen im Singular, wie beispielsweise „SystemMessage“. Zusammengesetzt ergeben sich Paarungen, wie „Get-SystemMessage“, „New-SystemMessage“, usw. Das Verb „Get“ bildet eine Ausnahme, da es weggelassen werden darf. Jedes Cmdlet hat zudem noch Parameter mit einem vorangestellten Bindestrich und Leerzeichen, die eine bestimmte Ausführung charakterisieren.

Cmdlets besitzen folgende Syntax:

Verb-Nomen -ParameterName

Eine ausführliche Beschreibung der Cmdlets ist bei Microsoft online unter der Rubrik Technet/Exchange verfügbar.

Allgemeine Tipps zum Einstieg

Nach dem Aufruf der Exchange-Verwaltungsshell befindet man sich im eigenen Benutzer-Profilverzeichnis. Zum Wechseln in ein anderes Verzeichnis kann das Cmdlet „chdir“ verwendet werden, wie zum Beispiel:

chdir c:\

Um einen Hilfetext zu einem bestimmten Cmdlet zu erhalten, kann die Bildschirmausgabe auch in eine Datei umgelenkt werden. Für das Cmdlet „Get-Mailbox“ ist dann

get-help get-mailbox -detailed > Dateiname.txt

anzugeben. Mit dem Notepad (Befehl „notepad“) kann anschließend der Text weiter verarbeitet werden. Eine Ausgabe in eine Textdatei ist deshalb sinnvoll, da eine Bildschirmausgabe mehrere Seiten lang sein kann und oft sehr unübersichtlich gestaltet ist.

Möchte man die Bildschirmausgaben löschen, kann „Cls“ eingegeben werden.

Postfächer verwalten – Übersicht gewinnen

Um einen Überblick über die Eigenschaften eines bestehenden Postfachs zu erlangen, kann folgendes Cmdlet ausgeführt werden (siehe Abbildung 2): get-mailbox „Name-des-Postfaches“ | select-object *, um alle dem Postfach zugehörigen Objekte im Active Directory aufzulisten. Beispiel:

Get-Mailbox “administrator“ | select-object *

Werden die Cmdlets „Mailbox“ oder „User“ ohne Parameter angegeben, erhält man voreingestellt eine Übersicht bestehender Objekte, was allerdings nur bei einer geringen Anzahl praktikabel ist (siehe Abbildungen 3 und 4).

Get-User

Get-Mailbox

Bei vielen Objekten kann es sinnvoll sein, einen Filter anzuwenden (siehe Abbildung 5). Dies geschieht mit Hilfe eines Pipelining (Symbol „|“), bei dem ein Cmdlet beim Ausführen einer Operation die Ausgabe eines anderen Cmdlets verwendet. In diesem Fall ist es das Cmdlet „where-object“, das hier mit der Variablen „$_“ verwendet wird. „Name“ ist eine Eigenschaft von „where-object“. Eine Verwendung finden die Parameter „-ilike“ oder „-inotlike“, um eine Ähnlichkeit oder Ungleichheit herauszufinden.

  • Get-user | where-object {$_.name -ilike ”Objektname*”}
  • Get-mailbox | where-object {$_.name -ilike ”Objektname*”}
  • Get-mailbox | where-object {$_.name -inotlike ”Objektname*”}

Postfächer verwalten – Antispam

Möchte man beispielsweise die Antispam-Features eines Postfaches verändern, kann man die Cmdlet-Kombination

Get-mailbox |Set-Mailbox

verwenden.

Für ein konkretes Beispiel (Domäne IP-Insider.de, alle Benutzer, SCL-Isolierungsschwellenwert 6) würde man Folgendes eingeben:

Get-mailbox -OrganizationalUnit IP-Insider.de\Users |Set-Mailbox -SCLQuarantineEnabled $true -SCLQuarantineThreshold 6

Postfächer verwalten – Mailadressen hinzufügen

In manchen Fällen reicht auch das Set-Mailbox-Cmdlet aus, wie folgendes Beispiel für die Domäne IP-Insider.de zeigt. Als Besonderheit ist hier zu erwähnen, dass die Mailadresse leider nicht direkt sondern nur über temporäre Variablen eingegeben werden kann. Es ist daher sinnvoll, sich zuerst über das Notepad ein kleines Skript zu schreiben und dieses dann per Copy&Paste in die Shell einzufügen.

  • $Temp = Get-Mailbox -Identity ”frank“
  • $Temp.EmailAddresses.Add(”smtp:frankc@IP-Insider.de“)
  • $Temp.EmailAddresses += (”smtp:frank.castro@IP-Insider.de“)
  • Set-Mailbox -Instance $Temp

Das Beispiel verdeutlicht den Gebrauch des Parameters „-Identity“, der einen Zugriff auf einen eindeutigen Bezeichner (hier das Postfach mit dem Namen „frank“) ermöglicht, der auf ein bestimmtes Objekt in Exchange Server 2007 verweist. Die Abbildung 6 zeigt den Vorgang in der Shell und überprüft die Ergebnisse in der Exchange-Verwaltungskonsole.

Fazit

Über die erweiterte PowerShell lassen sich Exchange Server 2003 und 2007 komfortabel verwalten. Die Exchange-Verwaltungsshell ist umfangreich, kommandozeilenorientiert und skriptfähig. Die PowerShell hat Befehlskonventionen, mit denen sich Befehle und Eigenschaften verknüpfen lassen.

Im Großen und Ganzen ist die Shell ein empfehlenswertes Werkzeug für diejenigen, die Skripte verwenden oder bestimmte Objekteigenschaften verändern möchten oder aber schlicht die grafische Oberfläche nicht mögen.

Artikelfiles und Artikellinks

(ID:2008195)