Exchange-Verwaltungsshell in Exchange 2010

 

Letztes Änderungsdatum des Themas: 2016-11-28

Von David Strome

Die Exchange-Verwaltungsshell ist eine leistungsfähige Befehlszeilen-Verwaltungsbenutzerschnittstelle, die auf Windows PowerShell v2 basiert und mit der Sie alle Aspekte von Microsoft Exchange Server 2010 verwalten können. Die Shell hilft Administratoren bei der täglichen Verwaltung von Postfächern und Entwicklern bei der Automatisierung der Administration mit einer benutzerdefinierten Branchenanwendung. In beiden Fällen kann dank der Shell schneller mehr erreicht werden.

Die Shell ist das Herzstück des Verwaltungsmodells in Exchange 2010. Die Exchange-Verwaltungskonsole (Exchange Management Console, EMC) und die Exchange 2010-Weboberfläche verarbeiten Aktionen mithilfe der Shell. Wenn Sie ein Postfach anzeigen, eine Verteilergruppe erstellen oder eine Datenbank einbinden, führt die Exchange-Verwaltungskonsole bzw. die Weboberfläche einen Shellbefehl aus, der die entsprechende Anforderung erfüllt. Über die Shell können Sie alle Aktionen ausführen, die Sie über die Exchange-Verwaltungskonsole oder die Weboberfläche ausführen können, sowie weitere Aktionen. Weiter unten in diesem Artikel finden Sie weitere Informationen dazu, wie Sie diese Vielseitigkeit nutzen können, sowie weitere Informationen zur Shell.

In diesem Artikel wird Folgendes erörtert:

  • Einige Grundkonzepte

  • Rollenbasierte Zugriffssteuerung

  • Starten der Exchange-Verwaltungsshell

  • Unterstützung, wo und wann auch immer sie benötigt wird

  • Verfügbarmachen von Shell-Befehlen in der Exchange-Verwaltungskonsole

  • Formatieren der Befehlsausgabe

Einige Grundkonzepte

Wenden wir uns zunächst einigen Grundkonzepten zur Shell zu.

  • Die zugrunde liegende Windows PowerShell-Technologie   Windows PowerShell v2 ist eine leistungsfähige und extrem flexible Befehlszeilenschnittstelle, die auf Microsoft .NET Framework basiert. Sie kombiniert die Vorteile verschiedener Shells und bietet einige beeindruckende neue Funktionen.

    Exchange 2010 verwendet Windows PowerShell und Windows Remote Management (WinRM) 2.0. Die Shell stellt eine Verbindung mit einem Exchange 2010-Server immer über ein virtuelles Verzeichnis der Internetinformationsdienste (Internet Information Services, IIS) her, unabhängig davon, ob die Verbindung mit einem lokalen Server oder einem Server an einem entfernten Standort hergestellt wird. WinRM ist der Kommunikationsmechanismus, der zwischen Ihrer Shell-Sitzung und dem Exchange 2010-Server verwendet wird.

  • Cmdlets   Ein Cmdlet, gesprochen "Commandlet", ist die kleinste Funktionseinheit in der Exchange-Verwaltungsshell. Cmdlets weisen aussagekräftige Namen aus Verb und Substantiv auf. Sie ähneln integrierten Befehlen in anderen Shells, beispielsweise dem Befehl Dir in "cmd.exe". Mit Cmdlets werden Objekte verwaltet. Ein Objekt ist eine Sammlung der Eigenschaften, die alle unterschiedlichen Aspekte von Exchange darstellen. Es gibt Serverobjekte, Postfachobjekte, Transportregelobjekte und andere. Jede Instanz einer Entität, z. B. eines Postfachs, wird als eigenes Objekt dargestellt.

  • Parameter   Mit Parametern werden Eingaben für das Cmdlet bereitgestellt. Ein Parameter entspricht mindestens einer Eigenschaft eines Objekts. Mit Parametern kann angegeben werden, welches Objekt erstellt oder bearbeitet werden soll, und es kann festgelegt werden, welche Eigenschaften dieses Objekts geändert werden sollen und wie.

  • Identity   Identity ist ein besonderer Parameter, der für jedes Cmdlet angewendet werden kann, mit dem Sie ein Objekt abrufen, ändern oder entfernen können. Es ermöglicht den Zugriff auf die eindeutigen Bezeichner, die auf ein bestimmtes Objekt in Exchange 2010 verweisen, das Sie anzeigen, ändern oder entfernen möchten.

    Der Parameter Identity wird außerdem als Positionsparameter betrachtet. Dies bedeutet, dass Sie den Parameterwert ohne Angabe des Parameternamens angeben können. Die Befehle Get-Mailbox -Identity "JohnE" und Get-Mailbox "JohnE" sind für Exchange gleich. Ein Parameter ist ein Positionsparameter, wenn das Attribut Parameter Position eine ganze Zahl ist.

  • Pipelining   Pipelining ist in der Shell der Vorgang, bei dem ein Cmdlet die Ausgabe eines anderen Cmdlets verwendet. Sie können Pipelining zum Verknüpfen von mindestens zwei Cmdlets verwenden. So können Sie beispielsweise mithilfe eines Cmdlets Daten erfassen und diese Daten an ein zweites Cmdlet übergeben, von dem sie in eine Teilmenge gefiltert werden. Anschließend werden die Daten an ein drittes Cmdlet übergeben, damit nur die Teilmenge verarbeitet wird.

Weitere Informationen zu diesen Konzepten finden Sie unter Grundlagen der Exchange-Verwaltungsshell (möglicherweise in englischer Sprache) in der Onlinehilfe zu Exchange 2010.

Rollenbasierte Zugriffssteuerung

Die rollenbasierte Zugriffssteuerung (Role based access control, RBAC) ist das Berechtigungsmodell in Exchange 2010. In RBAC wird mithilfe von Verwaltungsrollen definiert, welche Aktionen ein Benutzer ausführen darf. Beispielsweise darf ein Benutzer, dem die Rolle RecipientManagement zugewiesen wurde, Postfächer, Kontakte, Verteilergruppen und andere Arten von Empfängerobjekten verwalten. Die Benutzern zugewiesenen Verwaltungsrollen können mit einem Gültigkeitsbereich versehen werden, damit Benutzer nur bestimmte Empfänger oder Server in einer Exchange 2010-Organisation verwalten können. Wenn sich der Gültigkeitsbereich einer Zuweisung beispielsweise nur auf Empfänger in Seattle bezieht, kann der Administrator nur Benutzer in Seattle verwalten und keine anderen.

Hinweis

Dieser Artikel bezieht sich auf eine Betaversion von Exchange 2010. Daher können die Funktionalität, der Aufbau und die Verwendung integrierter Rollen später geändert werden.

Exchange 2010 enthält mehrere integrierte Verwaltungsrollen, die Sie ohne Vorbereitungsaufwand verwenden können, um Administratoren und Benutzern Berechtigungen zuzuweisen. Einige Rollen, z. B. OrganizationManagement und RecipientManagement, ermöglichen Ihren Administratoren die Verwaltung anderer Benutzer. Einige Rollen, z. B. MyOptions und MyDistributionGroups, ermöglichen Ihren Endbenutzern die Verwaltung des eigenen Postfachs und der eigenen Verteilergruppen. Die Rollen, die Sie den einzelnen Benutzern zuweisen, bestimmen, welche Aktionen sie in Ihrer Organisation ausführen können.

RBAC und die Shell

Warum ist RBAC in der Shell wichtig? Wie weiter unten in diesem Artikel erörtert wird, stellt die Shell beim Start eine Verbindung mit einem Exchange 2010-Server her und authentifiziert Sie. Im Rahmen des Authentifizierungsverfahrens überprüft Exchange 2010 in RBAC, welche Rollen Ihnen zugewiesen wurden. Zu jeder Verwaltungsrolle gehört eine Liste der Cmdlets und ihrer Parameter, die Benutzer mit dieser Rolle verwenden können. Bei der Erstellung Ihrer Umgebung durch die Shell werden nur die Cmdlets und Parameter, auf die Sie zugreifen können, der Umgebung hinzugefügt.

Im folgenden Diagramm wird gezeigt, wie mit der Exchange-Verwaltungskonsole und der Shell eine Verbindung zu einem Exchange 2010-Server hergestellt wird. Die Authentifizierungsanforderung wird von RBAC empfangen. RBAC bestimmt, über welche Rollen Sie verfügen und auf welche Cmdlets und Parameter Sie folglich zugreifen können. Bei nachfolgenden Anforderungen erhalten Windows PowerShell und RBAC Ausführungsanforderungen für Cmdlets, überprüfen, ob der Benutzer zum Ausführen des jeweiligen Cmdlets berechtigt ist, und führen es dann aus.

RBAC und Windows PowerShell (Übersicht)

Beachten Sie, dass für einen Benutzer abhängig von den zugewiesenen Verwaltungsrollen möglicherweise nur eine Teilmenge der Cmdlets sichtbar ist, die mit Exchange 2010 ausgeliefert werden. Beispielsweise können mit der Rolle OrganizationManagement alle Aspekte der Exchange 2010-Organisation verwaltet werden. Die Rolle OrganizationManagement ermöglicht den Zugriff auf fast jedes Cmdlet und fast jeden Parameter von Exchange 2010. Ein ganz anderes Beispiel ist die Rolle DiscoveryManagement, mit der Benutzer in Postfächern nach bestimmten Informationen suchen können. Die Rolle DiscoveryManagement hat eine sehr spezielle Funktion, und nur wenige Cmdlets und Parameter sind dafür erforderlich. Dies bedeutet, dass für einen Benutzer, dem die Rolle OrganizationManagement zugewiesen wurde, viel mehr Cmdlets und Parameter sichtbar sind als für einen Benutzer mit der Rolle DiscoveryManagement.

Hinweis

In der Hilfe, die über die Shell und online verfügbar ist, werden immer alle für das jeweilige Cmdlet verfügbaren Parameter angezeigt, unabhängig von den zugewiesenen Rollen des Benutzers.

Der Situation entsprechende Nutzung von Exchange-Berechtigungen

Weisen Sie Benutzern die Verwaltungsrollen zu, die am besten zu ihrem Aufgabengebiet passen. Bei Bedarf können Sie einem Benutzer mehr als eine Rolle zuweisen. Wenn mehrere Benutzer denselben Aufgabenbereich aufweisen, sollten Sie sie möglicherweise einer universellen Sicherheitsgruppe (Universal Security Group, USG) hinzufügen und dieser USG die erforderlichen Rollen zuweisen. So müssen Sie zum Steuern von Berechtigungen lediglich Mitglieder der Gruppe hinzufügen oder daraus entfernen.

Zwar stellt Exchange 2010 zahlreiche integrierte Rollen bereit; diese Rollen passen jedoch möglicherweise nicht perfekt zu Ihrer Organisation. Wenn dies der Fall ist, können Sie benutzerdefinierten Rollen erstellen. Mit RBAC können Sie eine integrierte Rolle kopieren und dann Cmdlets und Parameter entfernen, um eine neue Rolle zu erstellen, für die nur die gewünschten Aktionen zulässig sind. Wenn Sie beispielsweise möchten, dass ein Helpdesk-Team neue Postfächer zwar erstellen, aber nicht festlegen kann, in welcher Datenbank diese Postfächer erstellt werden, erstellen Sie eine neue Rolle ohne den Parameter Database für New-Mailbox oder Enable-Mailbox.

Weitere Informationen zu RBAC finden Sie unter Grundlegendes zur rollenbasierten Zugriffssteuerung (möglicherweise in englischer Sprache).

Starten der Exchange-Verwaltungsshell

Wie bereits erwähnt, basiert die Shell auf Windows PowerShell. Wenn Sie die Shell mithilfe der Verknüpfung für die Exchange-Verwaltungsshell öffnen, wird Windows PowerShell geöffnet, und einige Skripts werden ausgeführt. Die Skripts finden den am besten geeigneten Exchange 2010-Server und stellen eine Verbindung zu ihm her. Während des Verbindungsvorgangs überprüft Exchange, ob Sie zum Herstellen der Verbindung berechtigt sind. Falls ja, ermittelt Exchange, welche RBAC-Verwaltungsrollen Ihnen zugewiesen wurden. Abschließend wird eine Umgebung erstellt, die alle Cmdlets enthält, die Sie verwenden dürfen. Nun können Sie arbeiten.

Warum ist all dies für Sie wichtig? Wenn Sie Windows PowerShell über die Exchange Management Shell-Verknüpfung starten und dann versuchen, ein Exchange-Cmdlet auszuführen, z. B. Get-Mailbox, wird ein Fehler ausgegeben. Wieso? Weil das Cmdlet Get-Mailbox nicht in der Kernsammlung der Windows PowerShell-Cmdlets enthalten ist. Nach dem Herstellen einer Verbindung mit einem Exchange 2010-Server muss das Cmdlet Get-Mailbox von der Shell hinzugefügt werden, damit Sie es verwenden können.

Also der Reihe nach: Öffnen Sie die Exchange-Verwaltungsshell. Klicken Sie im Menü Start auf Alle Programme, klicken Sie auf Microsoft Exchange Server 2010 und anschließend auf Exchange-Verwaltungsshell.

Hinweis

Im Menü Microsoft Exchange Server 2010 wird die Option Exchange-Verwaltungsshell (Lokale PowerShell) angezeigt. Die lokale Windows PowerShell-Version der Exchange-Verwaltungsshell verwendet ein Windows PowerShell-Snap-In, das alle in Exchange 2010 verfügbaren Cmdlets enthält. Es verwendet nicht die Remotingfunktionen von Windows PowerShell, und es verwendet eine begrenzte Version von RBAC.
Mithilfe der Verknüpfung Exchange-Verwaltungsshell (Lokale PowerShell) können Sie die Shell auf einem Edge-Transport-Server verwenden. Wenn Sie die Shell mit einer anderen Serverrolle als einem Edge-Transport-Server öffnen, sollten Sie die lokale PowerShell-Version der Shell nur dann verwenden, wenn ein Problem auftritt, das nur mit dieser Option gelöst werden kann.
Die lokale Version der Shell wird in zukünftigen Versionen von Exchange 2010 von allen Serverrollen außer der Edge-Transport-Serverrolle entfernt.

Der folgende Screenshot zeigt, wie die Shell eine Verbindung mit einem Exchange 2010-Server herstellt und die Cmdlets importiert, auf die der Benutzer Zugriff hat.

Die Shell beim Herstellen einer Verbindung mit einem Exchange 2010-Server

Windows PowerShell wird geöffnet, und Sie sehen, dass eine Verbindung mit einem Exchange 2010-Server hergestellt und alle Cmdlets und Parameter geladen werden, auf die Sie anhand der Ihnen zugewiesenen RBAC-Verwaltungsrollen Zugriff haben. Nach der Verbindungsherstellung können Sie wie gewohnt Cmdlets ausführen. Mit dem Cmdlet Get-Command können Sie eine Liste der Cmdlets anzeigen, auf die Sie Zugriff haben.

Unterstützung, wo und wann auch immer sie benötigt wird

Für Exchange 2010 hat das Microsoft Exchange User Education-Team eine umfassende Dokumentationssammlung entwickelt, die in der Exchange-Verwaltungsshell und online zur Verfügung steht.

Das Cmdlet Get-Help ist eine wertvolle Ressource, die Sie beim Erlernen der Navigation in der Shell unterstützt. Sehen Sie sich außerdem die Onlinehilfe an. Sie schließt Themen ein, die alle Funktionen in Exchange und ihre Verwaltung mithilfe der Shell erläutern. Sie können auf die Exchange 2010-Onlinehilfe unter Microsoft Exchange Server 2010 Beta (möglicherweise in englischer Sprache) zugreifen.

Hilfe in der Shell

In der Shell selbst können Sie das Cmdlet Get-Help verwenden, um auf Cmdlet-spezifische Hilfe in einer Vielzahl von Formaten zuzugreifen. Wenn Sie nur Get-Help eingeben, werden allgemeine Hilfeinformationen angezeigt. Das Cmdlet Get-Help wird noch leistungsfähiger, wenn Sie Parameter zur Verfügung stellen.

Um Hilfe zu einem bestimmten Cmdlet abzurufen, geben Sie Get-Help gefolgt vom Namen des Cmdlets ein. Beispiel: Get-Help Get-SystemMessage. Standardmäßig zeigt die Shell eine Beschreibung des jeweiligen Cmdlets und seine Syntax an. Andere Abschnitte, die möglicherweise nicht von allen Administratoren verwendet werden, werden nicht angezeigt.

Sie können steuern, welche Informationen Ihnen zur Verfügung gestellt werden, indem Sie die Parameter Detailed, Full und Example verwenden. Fügen Sie diese einfach am Ende des Befehls hinzu. Beispielsweise gibt Get-Help -Full sämtliche Hilfeabschnitte zurück, die für ein Cmdlet verfügbar sind. Probieren Sie die Befehle selbst aus, um zu sehen, welche Informationen für Ihre bevorzugten Cmdlets angezeigt werden.

Wenn Sie Informationen zu einem bestimmten Parameter oder mehreren Parametern für ein Cmdlet abrufen möchten, können Sie den Parameter Parameters mit dem Cmdlet Get-Help verwenden. Wenn Sie z. B. alle Parameter und ihre Beschreibungen für das Cmdlet Set-Mailbox anzeigen möchten, die das Wort "quota" enthalten, geben Sie Get-Help Set-Mailbox -Parameter *quota* ein.

Das Thema Zugreifen auf die Hilfe (möglicherweise in englischer Sprache) in der Exchange Server 2010-Onlinehilfe listet alle Rollen-, Komponenten- und Funktionalitätswerte auf, die verwendet werden können.

Verfügbarmachen von Shell-Befehlen in der Exchange-Verwaltungskonsole

Jedes Mal, wenn Sie eine Ansicht aktualisieren, indem Sie auf ein anderes Element klicken oder eine Änderung vornehmen (z. B. an einem Postfach), führt die Exchange-Verwaltungskonsole einen Shell-Befehl aus. Die Exchange-Verwaltungskonsole in Exchange 2010 umfasst eine Reihe neuer Funktionen, die anzeigen, wie sie Ihre Aktionen mithilfe von Shell-Befehlen durchführt.

Im Windows PowerShell-Befehlsprotokoll werden alle Befehle der Shell protokolliert, die für Ihre Aktionen in der Exchange-Verwaltungskonsole ausgeführt werden. Sie können das Protokoll nach dem Öffnen der Exchange-Verwaltungskonsole jederzeit starten. Es bleibt geöffnet, und Befehle werden weiterhin protokolliert, bis Sie die Protokollierung beenden oder bis die Exchange-Verwaltungskonsole geschlossen wird. Um Protokolle zu erfassen, müssen Sie das Protokoll bei jedem Öffnen der Exchange-Verwaltungskonsole starten.

Das Protokoll enthält die folgende Informationen für jeden aufgezeichneten Befehl:

  • Startzeit der Ausführung   In diesem Feld wird der Zeitpunkt aufgezeichnet, zu dem die Ausführung des Shell-Befehls gestartet wurde.

  • Endzeit der Ausführung   In diesem Feld wird der Zeitpunkt aufgezeichnet, zu dem die Ausführung des Shell-Befehls beendet wurde.

  • Ausführungsstatus   In diesem Feld wird aufgezeichnet, ob der Befehl erfolgreich abgeschlossen wurde.

  • Befehl   In diesem Feld wird der Befehl aufgezeichnet, der ausgeführt wurde. Dabei sind das Cmdlet, die Parameter und ihre Werte eingeschlossen.

Wenn Sie einen der ausgeführten Befehle auswählen, werden seine Details im Fenster unter der Liste der Protokolleinträge angezeigt. Wenn der Befehl eine Ausgabe einschließt, wird sie ebenfalls in diesem Fenster angezeigt.

Sie können das Protokoll in eine Protokolldatei ausgeben oder die Befehle in die Zwischenablage kopieren, um sie direkt in der Shell zu verwenden.

Windows PowerShell-Befehlsprotokoll

Sie können auf das Fenster Befehl der Exchange-Verwaltungsshell zugreifen, wenn Sie die Eigenschaften eines Objekts ändern. Um auf das Shell-Befehlsfenster zuzugreifen, klicken Sie nach dem Vornehmen einer Änderung im Eigenschaftenfenster auf das Symbol . Im Shell-Befehlsfenster wird der Befehl angezeigt, der ausgeführt würde, wenn Sie die im Eigenschaftenfenster vorgenommenen Änderungen anwenden würden. Der Befehl enthält das Cmdlet, die Parameter und ihre Werte. Sie können den Befehl in die Zwischenablage kopieren und ihn direkt in der Shell verwenden.

Alle Assistenten in der Exchange-Verwaltungskonsole schließen den Befehl ein, der erstellt wird, wenn Sie mit dem jeweiligen Assistenten ein Exchange-Objekt erstellen oder ändern. Genauso wie in der Exchange-Verwaltungskonsole andere Shell-Befehle verfügbar gemacht werden, wird im Abschlussfenster des Assistenten der Befehl angezeigt, der ausgeführt würde. Er kann auch in die Zwischenablage kopiert werden, damit Sie ihn direkt in der Shell verwenden können.

Formatieren der Befehlsausgabe

Standardmäßig gibt die Shell bei der Anzeige der Befehlsausgabe auf dem Bildschirm nur eine Untermenge der verfügbaren Eigenschaften für jedes Objekt aus. Wieso? Weil jedes Objekt Dutzende von Eigenschaften enthalten kann, und die Anzeige der Shell so optimiert wird, dass nur die Eigenschaften eingeschlossen werden, die wahrscheinlich für Sie am nützlichsten sind. Sie können jedoch auf alle Eigenschaften eines Objekts auf einfache Weise zugreifen und sie anzeigen, indem Sie die Ausgabe eines Befehls an die folgenden drei Formatierungs-Cmdlets übergeben: Format-List, Format-Table und Format-Wide.

Format-List und Format-Table werden am häufigsten verwendet und daher im Folgenden ausführlicher erläutert.

Das Cmdlet Format-List akzeptiert Eingaben von der Pipeline und gibt eine Liste mit vertikalen Spalten aus, die alle angegebenen Eigenschaften jedes Objekts enthält. Mit dem Parameter Property (einem Positionsparameter) kann festgelegt werden, welche Eigenschaften angezeigt werden. Wenn das Cmdlet Format-List ohne Angabe von Parametern aufgerufen wird, werden alle Eigenschaften ausgegeben. Bei Verwendung des Cmdlets Format-List werden Zeilen nicht abgeschnitten, sondern umgebrochen. Eine der besten Einsatzmöglichkeiten für das Cmdlet Format-List besteht im Außerkraftsetzen der Standardausgabe eines Cmdlets, sodass weitere oder wesentlichere Informationen abgerufen werden können. Das Beispiel Get-DistributionGroup | Format-List Name, *OnlyFrom, PrimarySmtpAddress, *Size* zeigt dies.

Das Cmdlet Format-Table ermöglicht die Darstellung von Elementen im Tabellenformat, wobei die Tabelle Spaltenüberschriften und Spalten mit Eigenschaftendaten enthält. Viele Cmdlets wie Get-Mailbox und Get-JournalRule verwenden standardmäßig das Tabellenformat für die Ausgabe. Zu den Parametern für das Cmdlet Format-Table zählen die Parameter Properties und GroupBy. Ihre Funktionsweise ist mit diesem Cmdlet dieselbe wie mit dem Cmdlet Format-List. Um lange Zeilen mit Eigenschafteninformationen vollständig anzuzeigen und nicht am Ende einer Zeile abzuschneiden, verwenden Sie den Parameter Wrap mit dem Cmdlet Format-Table, wie im folgenden Beispiel gezeigt: Get-Mailbox -Database Research | Format-Table Name, ProhibitSendQuota, Database -Wrap.

Sie können für die Cmdlets Format-List und Format-Table auch das Platzhalterzeichen "*" mit einem Teil eines Eigenschaftennamens angeben. Bei Angabe eines Platzhalterzeichens können mehrere Eigenschaften zugeordnet werden, ohne dass die Eigenschaften einzeln eingegeben werden müssen. Beispiel: Get-Mailbox | Format-List Email* gibt alle Eigenschaften zurück, die mit Email beginnen.

Weniger Tastatureingaben und mehr Zeit, Exchange 2010 spielerisch zu erforschen!

Weitere Informationen

Weitere Informationen zu Exchange 2010 und zur Exchange-Verwaltungsshell finden Sie in den folgenden Ressourcen (möglicherweise in englischer Sprache):

David Strome - Technischer Autor, Microsoft Exchange Server User Education