Grundlagen der Exchange-Verwaltungsshell

 

Letztes Änderungsdatum des Themas: 2007-01-31

Von David Strome

Ein neues Feature in Microsoft Exchange Server 2007 ist die Exchange-Verwaltungsshell, eine leistungsfähige Verwaltungsschnittstelle, die auf Microsoft Windows PowerShell-Technologie basiert. Mit der Exchange-Verwaltungsshell können alle Aufgaben ausgeführt werden, die mit der Exchange-Verwaltungskonsole erledigt werden können, sowie zusätzliche Aufgaben, die nicht in der Exchange-Verwaltungskonsole ausgeführt werden können. Beim Ausführen einer Aufgabe in der -Verwaltungskonsole wird derselbe Befehl sogar für die Exchange-Verwaltungsshell verfügbar gemacht und aufgerufen, um die Anforderung zu verarbeiten.

Abbildung 1 zeigt die Exchange-Verwaltungsshell in Aktion.

Abbildung 1   Die Exchange-Verwaltungsshell

Verschieben eines Postfachs mit der Exchange-Verwaltungsshell

Auf den ersten Blick sieht die Shell für Benutzer, die nicht an die Befehlszeile gewöhnt sind, möglicherweise abschreckend aus. Sehen Sie sich jedoch die interessanten Aktionen an, die ausgeführt werden können, und lassen Sie sich durch den einfachen einstieg überraschen:

  • Sicheres und einfaches Erstellen von Skripts   Die Exchange-Verwaltungskonsole setzt die Exchange-Verwaltungsshell nicht einfach zum Ausführen bestimmter Vorgänge ein. Die Assistenten zeigen Ihnen, welche Exchange-Verwaltungsshellbefehle gerade ausgeführt werden. Sie können die von den Assistenten erstellten Befehle kopieren und sie direkt in die Befehlszeile oder in ein Skript einfügen. Nachdem Sie die Parameter entsprechend Ihren Wünschen geändert haben, testen Sie Ihre Skripts oder Befehle. Verwenden Sie dazu den Parameter WhatIf, um sich zunächst die Ergebnisse anzuschauen, ohne die Änderungen an Ihrer Umgebung tatsächlich vorzunehmen.

    Ändern von Parametern? WhatIf? Klingt das zu kompliziert? Keine Angst! Lesen Sie den Abschnitt "Verwenden der Exchange-Verwaltungsshell" in der Dokumentation zu Microsoft Exchange Server 2007. Die Verwendung der Shell ist sehr schnell zu erlernen.

  • Klar und einfach   Alle Cmdlets sind durch konsistente Verb-Substantiv-Paare benannt, die die verwaltete Funktion oder Komponente sowie die ausgeführte Aktion klar identifizieren. Sie müssen nicht mehr raten, welche Aufgabe ein Cmdlet ausführt. Wenn Sie das Cmdlet Move-Mailbox sehen, wissen Sie genau, wofür es verwendet wird. (Ja, richtig. Sie verwenden es zum Verschieben von Postfächern!)

  • Maximieren Sie Ihre Ressourcen und Ihre Zeit, nicht Ihre Frustration   Die Exchange-Verwaltungsshell stellt Ihnen eine robuste und flexible Skriptingplattform zur Integration mit Ihren aktuellen Skriptinglösungen zur Verfügung, und ermöglicht die systemeigene Kommunikation mit Datenquellen wie COM und WMI (Windows Management Instrumentation). Verwenden Sie Ihre Ressourcen und Ihre Zeit sinnvoll zum Erstellen nützlicher Lösungen, anstatt an einem unterstützenden Framework für diese Lösungen arbeiten zu müssen.

  • Wiederholen Sie diese Worte: Nie mehr Textanalyse!   Basierend auf Microsoft .NET können die Cmdlets der Exchange-Verwaltungsshell strukturierte Daten anstelle von Nur-Text akzeptieren und zurückgeben. Auf diese Weise wird die einfache Übergabe von Daten in beide Richtungen ohne unübersichtliche Textanalyse ermöglicht. Sie können selbst CSV- und XML-Dateien in Objekte verwandeln, die sich in einer einzigen Zeile bearbeiten und verwenden lassen.

Einige Grundkonzepte

Bevor Sie mit der Exchange-Verwaltungsshell zu arbeiten beginnen, sollten Sie einige Grundkonzepte verstanden haben.

  • Die zugrunde liegende Windows PowerShell-Technologie   Die Windows PowerShell ist eine neue, leistungsfähige und extrem flexible Befehlszeilenschnittstelle, die auf dem .NET Framework basiert. Sie kombiniert die Vorteile verschiedener Shells und bietet einige beeindruckende neue Features. Die PowerShell wurde für das Hosting anderer Anwendungen konzipiert, vergleichbar mit der Microsoft Management Console (MMC), die als Host für die verschiedenen Snap-Ins fungiert, die mit Anwendungen zur Verfügung gestellt werden, die auf einem Computer installiert sind. Die Exchange-Verwaltungsshell ist das erste Microsoft PowerShell-Snap-In, das vorgestellt wird.

  • Cmdlets   Ein Cmdlet, gesprochen "Command-let", ist die kleinste Funktionseinheit in der Exchange-Verwaltungsshell. Cmdlets sind mit den Befehlen vergleichbar, die in andere Shells integriert sind, z. B. mit dem Befehl Dir in cmd.exe. Wie diese bekannten Befehle können auch Cmdlets direkt über die Befehlszeile der Exchange-Verwaltungsshell aufgerufen werden. Hier werden sie im Kontext der Shell und nicht als separater Prozess ausgeführt. Im Gegensatz zu anderen Shells besitzen Cmdlets in der Exchange-Verwaltungsshell beschreibende Verb-Substantiv-Namen. Das Verb beschreibt die Aktion, die das Cmdlet ausführt, das Substantiv die Komponente oder das Feature, für die bzw. das die Aktion ausgeführt wird. Sie verwenden das Cmdlet Get-SystemMessage beispielsweise, um DSN- (Delivery Status Notification, Benachrichtigung über den Übermittlungsstatus) oder Kontingentmeldungen auf Computern anzuzeigen, auf denen die Serverfunktion Hub-Transport installiert ist.

    Weitere Informationen zu den einzelnen Cmdlets finden Sie im Abschnitt "Exchange-Verwaltungsshell" im Knoten "Technische Referenz" der Exchange 2007-Hilfe.

  • Identitäts- und Positionsparameter   Parameter sind Elemente, die einem Cmdlet Informationen bereitstellen, die entweder ein Objekt und dessen zugehörigen Attribute identifizieren, für die eine Aktion durchzuführen ist, oder die die Durchführung des Tasks durch das Cmdlet steuern. Sie können den Parameter Identity mit den meisten Exchange-Cmdlets verwenden. Der Parameter Identity bietet Zugriff auf die eindeutigen Bezeichner, die auf ein bestimmtes Objekt in Exchange 2007 verweisen. Auf diese Weise können Sie Aktionen für ein bestimmtes Exchange-Objekt mithilfe des eindeutigen Werts ausführen, der für Sie am sinnvollsten ist.

    Der Parameter Identity ist eine Sammlung von Werten aus anderen Parametern. Die Eindeutigkeit dieser Werte innerhalb der betreffenden Objektsammlung ist gewährleistet. Sie können die Werte dieser anderen Parameter, z. B. Name und DistinguishedName angeben, oder diese Werte können vom System generiert werden wie etwa eine GUID. Die zusätzlichen Parameter, die ggf. verwendet werden, sowie die Art ihrer Auffüllung mit Werten hängen von dem Objekt ab, auf das Sie verweisen.

    Der Parameter Identity ist außerdem ein Positionsparameter. Bei einem Positionsparameter handelt es sich um einen Parameter, mit dem Sie den Parameterwert ohne Angabe des Parameternamens angeben können. Ein Parameter ist ein Positionsparameter, wenn das Attribut Parameter Position eine ganze Zahl ist. Diese ganze Zahl gibt die Position in der Befehlszeile an, an der das Cmdlet den Parameterwert finden kann. Da Identity ein Positionsparameter ist, der sich an Position 1 befindet, die die erste Position ist, wird jeder an dieser Position ohne Parametername eingegebene Wert als ein Identity-Parameterwert betrachtet.

    Und was bedeutet dies? Auf diese Weise wird die Anzahl der Tastatureingaben beim Eingeben von Befehlen verringert. Get-Mailbox "Kim Akers" führt z. B. die gleiche Aktion wie Get-Mailbox -Identity "Kim Akers" aus.

  • Pipelining   Pipelining ist in der Exchange-Verwaltungsshell der Vorgang, bei dem ein Cmdlet beim Ausführen einer Operation die Ausgabe eines anderen Cmdlets verwendet. Sie können Pipelining zum Verknüpfen von mindestens zwei Cmdlets verwenden. Dies bedeutet, dass Sie kleinere Komponenten verbinden und in ein leistungsfähigeres Konstrukt umwandeln können. 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. Das folgende Beispiel, das alle Postfächer aus der Datenbank Sales in die Datenbank Research auf dem gleichen Server verschiebt, zeigt diesen Vorgang:

    Get-MailboxDatabase Sales | Get-Mailbox | Move-Mailbox -TargetDatabase Research
    

    Verstehen Sie, wie das Pipelinesymbol "|" verwendet wird? Zuerst wird die Datenbank Sales mithilfe des Cmdlets Get-MailboxDatabase abgerufen, und das sich ergebende Objekt wird mittels Pipelining in das Cmdlet Get-Mailbox umgeleitet. Anschließend werden alle Postfächer in der Datenbank Sales mit dem Cmdlet Get-Mailbox abgerufen. Die sich ergebende Postfachmenge wird dann mittels Pipelining an das Cmdlet Move-Mailbox umgeleitet, das die Postfächer in die Postfachdatenbank Research verschiebt. Dieser Befehl wurde in Abbildung 1 weiter oben in diesem Thema gezeigt.

    Alle Verben in derselben Substantiv-Cmdlet-Gruppe können Informationen in der Pipeline von einem anderen Befehl verwenden. Bei einigen Substantiv-Cmdlet-Gruppen können Sie auch Daten über die Pipeline an eine andere Substantiv-Cmdlet-Gruppe übergeben. "Substantiv-Cmdlet-Gruppe"? Was ist das? Alle Cmdlets in der Exchange-Verwaltungsshell, mit denen ein bestimmtes Feature verwaltet wird, weisen das gleiche Substantiv auf, z. B. Mailbox oder AddressList. Eine nach Substantiv geordnete Liste aller Cmdlets finden Sie unter Cmdlet-Liste.

Starten der Exchange-Verwaltungsshell

Windows PowerShell-Snap-Ins sind Sammlungen von Cmdlets, die zum Verwalten einer Anwendung oder größeren Komponente verwendet werden. Wenn Sie das Snap-In für die jeweilige Anwendung nicht laden, können Sie seine zugehörigen Cmdlets nicht verwenden.

Was bedeutet das für Sie? Wenn Sie die PowerShell starten, ohne das Exchange-Verwaltungsshell-Snap-In zu laden und dann versuchen, ein Cmdlet der Exchange-Verwaltungsshell wie z. B. Get-Mailbox auszuführen, wird ein Fehler ausgegeben. Aus welchem Grund? Weil das Cmdlet Get-Mailbox nicht in der Kernsammlung der PowerShell-Cmdlets enthalten ist.

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

Weitere Hintergrundinformationen für den Einstieg finden Sie unter Neue Verwaltungsfunktionen in der Exchange-Verwaltungsshell.

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

Für Exchange 2007 hat das Microsoft Exchange User Education-Team eine robuste Dokumentationssammlung entwickelt, die in der Exchange-Verwaltungsshell und in der Exchange Server 2007-Hilfedatei enthalten ist und in der Exchange-Verwaltungskonsole sowie online zur Verfügung steht.

In der Shell werden Sie herausfinden, dass das Cmdlet Get-Help eine wertvolle Ressource ist, die Sie beim Erlernen der Navigation in der Exchange-Verwaltungsshell unterstützt. Außerdem sollten Sie den Abschnitt zum Betrieb in der Exchange Server 2007-Hilfedatei lesen. Er enthält Dutzende von Verfahrensthemen, die Sie bei der Durchführung der meisten Verwaltungsaufgaben mithilfe der Exchange-Verwaltungsshell und der Exchange-Verwaltungskonsole unterstützen. Sie können auf die Exchange Server 2007-Hilfedatei über das Menü Start von Exchange 2007 oder online unter Microsoft Exchange Server 2007 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 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 zu erhalten, geben Sie Get-Help ein, gefolgt vom Namen des Cmdlets, zu dem Sie Informationen benötigen, z. B. Get-Help Get-SystemMessage. Standardmäßig zeigt die Shell eine Beschreibung des jeweiligen Cmdlets und seine Syntax an. Sie unterdrückt andere Abschnitte, die möglicherweise nicht von Administratoren verwendet werden.

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. Get-Help -Full gibt beispielsweise 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.

Möglicherweise möchten Sie auch eine Liste der Cmdlets anzeigen, die eine bestimmte Serverfunktion oder Komponentenfunktion verwalten oder die Objekte in einem bestimmten Funktionsbereich beeinflussen. Sie können zu diesem Zweck das Cmdlet Get-Help und drei Parameter verwenden: Role, Component und Functionality. Wenn Sie das Cmdlet Get-Help mit diesen Parametern verwenden, müssen Sie die mit diesen Parametern angegebenen Werte in Platzhalterzeichen (*) einschließen. Nachfolgend sind Beispiele zum Aufrufen von Get-Help mithilfe der einzelnen Parameter aufgeführt:

  • Get-Help -Role *Mailbox*

  • Get-Help -Component *Recipient*

  • Get-Help -Functionality *Server*

Das Thema "Zugriff auf die Hilfe" in der Exchange Server 2007-Hilfedatei listet alle Serverfunktions-, Komponenten- und Funktionalitätswerte auf, die verwendet werden können.

Formatieren der Befehlsausgabe

Standardmäßig gibt die Exchange-Verwaltungsshell bei der Anzeige der Befehlsausgabe auf dem Bildschirm nur eine Untermenge der verfügbaren Eigenschaften für jedes Objekt aus. Aus welchem Grund? Weil jedes Objekt Dutzende von Eigenschaften enthalten kann und Sie die Befehlsausgabe gemäß Ihren Anforderungen optimieren möchten. Sie können auf alle diese Eigenschaften auf einfache Weise zugreifen und diese anzeigen, indem Sie die Ausgabe eines Befehls mittels Pipelining an die folgenden drei Formatierungs-Cmdlets umleiten: 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 Eingabe 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 umbrochen. 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. Abbildung 2 zeigt die Ausgabe dieses Befehls.

Abbildung 2   Beispielausgabe von "Format-List"

Beispielausgabe des Cmdlets "Format-Table"

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 beispielsweise 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. Abbildung 3 zeigt die Ausgabe dieses Befehls.

Abbildung 3   Beispielausgabe von "Format-Table"

Beispielausgabe des Cmdlets "Format-Table"

Sie können mit den Cmdlets Format-List und Format-Table auch ein Platzhalterzeichen "*" mit einem Teil eines Eigenschaftennamens verwenden, wie in Abbildung 2 gezeigt wird. Wenn Sie ein Platzhalterzeichen verwenden, können Sie mehrere Eigenschaften erfassen, ohne jeden Eigenschaftennamen einzeln eingeben zu müssen. Beispiel: Get-Mailbox | Format-List -Property Email* gibt alle Eigenschaften zurück, die mit Email beginnen. Weniger Tastatureingaben und mehr Zeit, Exchange 2007 spielerisch zu erforschen!

Weitere Informationen

Weitere Informationen zu Exchange 2007 und zur Exchange-Verwaltungsshell finden Sie in den folgenden Ressourcen:

e20b37a2-3200-4bd5-af71-09c580f78091 David Strome - Technischer Autor, Microsoft Exchange Server

-