Syntax der Exchange-Cmdlets

Referenzartikel zu Exchange-Cmdlets verwenden eine standardisierte Methode, die wichtige Aspekte des Cmdlets beschreibt. Zum Beispiel:

  • Im Cmdlet verfügbare Parameter.
  • Werte, die von den einzelnen Parametern akzeptiert werden.
  • Parameter, die zusammen verwendet werden können, und Parameter, die separat verwendet werden müssen.

In diesem Artikel werden diese Konventionen sowie die Syntax erläutert, die zum Ausführen von Befehlen in Exchange PowerShell erforderlich ist.

Befehlskonventionen in Exchange PowerShell

Die Exchange PowerShell-Hilfe folgt den Konventionen, um erforderliche oder optionale Informationen anzugeben und Parameter und Werte einzugeben, wenn Sie einen Befehl ausführen. Diese Befehlskonventionen werden in der folgenden Liste beschrieben:

  • -: Ein Bindestrich gibt einen Parameter an. Beispiel: -Identity.
  • < >: Spitze Klammern geben die möglichen Werte für einen Parameter an. Zum Beispiel -Location <ServerName> oder -Enabled <$true | $false>.
  • [ ]: Eckige Klammern geben optionale Parameter und ihre Werte an. Zum Beispiel [-WhatIf] oder [-ResultSize <Unlimited>].
    • Parameter-Wert-Paare, die nicht in eckige Klammern eingeschlossen sind, sind erforderlich. Beispiel: -Password <SecureString>.
    • Eckige Klammern um den Parameternamen selbst geben einen Positionsparameter an, bei dem Sie den Parameterwert verwenden können, ohne den Parameternamen anzugeben. Positionsparameter sind erforderlich oder optional. Zum Beispiel:
      • Get-Mailbox [[-Identity] <MailboxIdParameter>] bedeutet, dass der Parameter "Identity" wie folgt lautet:
        • Positional, weil der Parameter in eckige Klammern eingeschlossen ist.
        • Optional, da das gesamte Parameter-Wert-Paar in eckige Klammern eingeschlossen ist.
        • Sie können also or Get-Mailbox <MailboxIdParameter>verwendenGet-Mailbox -Identity <MailboxIdParameter>.
      • Set-Mailbox [-Identity] <MailboxIdParameter> bedeutet, dass der Parameter "Identity" wie folgt lautet:
        • Positional, weil der Parameter in eckige Klammern eingeschlossen ist.
        • Erforderlich, da das gesamte Parameter-Wert-Paar nicht in eckige Klammern eingeschlossen ist.
        • Sie können also or Set-Mailbox <MailboxIdParameter>verwendenSet-Mailbox -Identity <MailboxIdParameter>.
  • |: Rohrsymbole in Parameterwerten zeigen eine Auswahl zwischen Werten an. Gibt beispielsweise an, -Enabled <$true | $false> dass der Parameter Enabled den Wert $true oder $falsehaben kann.

Diese Befehlskonventionen helfen Ihnen zu verstehen, wie ein Befehl aufgebaut wird. Mit Ausnahme des Bindestrichs, der einen Parameter angibt, verwenden Sie diese Symbole nicht, da sie in der Tabelle beschrieben sind, wenn Sie Cmdlets in Exchange PowerShell ausführen.

Parametersätze in Exchange PowerShell

Bei Parametersätzen handelt es sich um Gruppen von Parametern, die zusammen in einem Befehl verwendet werden können. Jeder Parametersatz enthält mindestens einen Parameter, der in den anderen Parametersätzen nicht verfügbar ist, aber Parametersätze haben in der Regel einige Parameter.

Viele Cmdlets haben nur einen Parametersatz, d. h., alle Parameter können miteinander verwendet werden. Andere Cmdlets verfügen über mehrere Parametersätze, was bedeutet, dass einige Parameter nicht mit anderen Parametern verwendet werden können. Nehmen wir beispielsweise an, die folgenden Parametersätze stehen für das Cmdlet New-SystemMessage zur Verfügung:

New-SystemMessage -DsnCode <EnhancedStatusCode> -Internal <Boolean> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>

New-SystemMessage -QuotaMessageType <QuotaMessageType> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>

Die folgenden Parameter sind im ersten Parametersatz verfügbar, sodass Sie sie in demselben Befehl verwenden können:

  • DsnCode
  • Intern
  • Sprache
  • Text
  • Bestätigen
  • Domänencontroller
  • WhatIf

Die folgenden Parameter sind im zweiten Parametersatz verfügbar, sodass Sie sie in demselben Befehl verwenden können:

  • QuotaMessageType
  • Sprache
  • Text
  • Bestätigen
  • Domänencontroller
  • WhatIf

Die Parameter DsnCode und Internal stehen nur im ersten Parametersatz zur Verfügung. Der Parameter QuotaMessageType steht nur im zweiten Parametersatz zur Verfügung. Daher können Sie die folgenden Parameter nicht im selben Befehl verwenden:

  • DsnCode und QuotaMessageType.
  • Internal und QuotaMessageType.

Die folgenden Parameter sind in beiden Parametersätzen verfügbar, sodass Sie sie in jedem New-SystemMessage-Befehl verwenden können:

  • Sprache
  • Text
  • Bestätigen
  • Domänencontroller
  • WhatIf

Der <CommonParameters> Eintrag gibt an, dass das Cmdlet die grundlegenden Windows PowerShell-Parameter unterstützt, die für praktisch jedes Cmdlet verfügbar sind (z. B. Ausführlich). Sie können allgemeine Parameter mit Parametern aus einem beliebigen Parametersatz verwenden. Weitere Informationen finden Sie unter about_CommonParameters.

Anführungszeichen in Exchange PowerShell

In Exchange PowerShell verwenden Sie einfache Anführungszeichen ( ' ) oder doppelte Anführungszeichen ( " ), um Parameterwerte, die Leerzeichen enthalten, einzuschließen. Die folgenden Befehle verhalten sich z. B. gleich:

  • Get-ReceiveConnector -Identity "Contoso Receive Connector"

  • Get-ReceiveConnector -Identity 'Contoso Receive Connector'

Wenn Sie den Wert aus den vorangegangenen Beispielen nicht in einfache oder doppelte Anführungszeichen einschließen, tritt der Befehl fehl, da PowerShell jedes Wort als neues Argument behandelt (es wird davon ausgegangen, dass Contoso es sich um den Wert des Identity-Parameters und Receive um den Wert eines nicht angegebenen Positionsparameters handelt). In diesem Beispiel sieht der Fehler wie folgt aus:

Es wurde kein Positionsparameter gefunden, der das Argument 'Receive' akzeptiert

Bei Nur-Text-Werten spielen einfache und doppelte Anführungszeichen keine Rolle. Die Auswahl ist jedoch wichtig, wenn Variablen beteiligt sind:

  • Doppelte Anführungszeichen: Variablen werden durch ihre tatsächlichen Werte ersetzt.
  • Einfache Anführungszeichen: Variablen werden wörtlich behandelt.

Das Ergebnis ist beispielsweise die folgende Ausgabe, je nachdem, $Server = Mailbox01 welche Anführungszeichen Sie verwenden:

  • "$Server Beispiel" ergibt Mailbox01 Example.
  • '$Server Example' ergibt $Server Example.

Weitere Informationen zu Variablen finden Sie unter about_Variables und about_Automatic_Variables.

Escape-Zeichen in Exchange PowerShell

In jeder Programmiersprache wird ein Escapezeichen verwendet, um Sonderzeichen wörtlich zu identifizieren und nicht anhand ihrer normalen Funktion in der jeweiligen Sprache. Wenn Sie in Exchange PowerShell eine Textzeichenfolge in doppelte Anführungszeichen einschließen, ist das Escapezeichen ( ' ), wenn Sie eine Textzeichenfolge in doppelte Anführungszeichen einschließen.

Wenn Sie beispielsweise die Ausgabe The price is $23erhalten möchten, geben Sie den Wert "Der Preis ist '23 $'" ein. Das Escapezeichen ist auf dem Dollarzeichen ($) erforderlich, da $ Variablen in PowerShell definiert.

Wenn Sie die Zeichenfolge in einfache Anführungszeichen einschließen, ist das einzige Sonderzeichen, um das Sie sich kümmern müssen, das einfache Anführungszeichen selbst, für das zwei einfache Anführungszeichen maskiert werden müssen ( ). ''

Wenn Sie beispielsweise die Ausgabe Don't confuse two single quotation marks with a double quotation mark!erhalten möchten, geben Sie den Wert ein, "Verwechseln Sie nicht zwei einfache Anführungszeichen mit einem doppelten Anführungszeichen!".

Befehlsoperatoren in Exchange PowerShell

Die folgende Liste zeigt die gültigen Operatoren, die Sie in einem Exchange-Befehl verwenden können. Einige dieser Symbole wurden auch im früheren Abschnitt Befehlskonventionen in Exchange PowerShell beschrieben. Diese Symbole haben jedoch unterschiedliche Bedeutungen, wenn sie als Operatoren verwendet werden. Beispielsweise kann das Minuszeichen, das einen Parameter angibt, auch als mathematischer Operator verwendet werden.

  • =: Das Gleichheitszeichen ist ein Zuordnungszeichen. Der Wert auf der rechten Seite des Gleichheitszeichens wird der Variablen auf der linken Seite zugewiesen. Beispiel: $x = Get-Mailbox. Sie können auch andere Zeichen mit dem Gleichheitszeichen verwenden:

    • +=: Addiert den Wert auf der rechten Seite des Gleichheitszeichens zum aktuellen Wert in der Variablen auf der linken Seite.
    • -=: Subtrahiert den Wert auf der rechten Seite des Gleichheitszeichens vom Strom in der Variablen auf der linken Seite.
    • *=: Multiplizieren Sie den aktuellen Wert der Variablen auf der linken Seite des Gleichheitszeichens mit dem auf der rechten Seite angegebenen Wert.
    • /=: Dividiert den aktuellen Wert der Variablen auf der linken Seite des Gleichheitszeichens durch den auf der rechten Seite angegebenen Wert.
    • %=: Ändern des aktuellen Werts der Variablen auf der linken Seite des Gleichheitszeichens um den auf der rechten Seite angegebenen Wert.
  • :: Verwenden Sie einen Doppelpunkt, um einen Parameternamen vom Parameterwert zu trennen. Beispiel: -Enabled:$True.

    • Ein Doppelpunkttrennzeichen funktioniert und ist bei praktisch allen Parameter-Wert-Paaren optional.
    • Bei Schalterparametern ist ein Doppelpunkttrennzeichen erforderlich. Weitere Informationen zu Switch-Parametern finden Sie unter about_Parameters.
  • !: Das Ausrufezeichen ist der logische NOT-Operator. Das kombinierte Paar != bedeutet "ungleich".

  • [ ]: Klammern geben den Indexwert einer Arrayposition an. Indexwerte sind Offsets, die immer bei Null beginnen. Im Array mit dem Namen $Redist beispielsweise der Wert der zehnten Position im Array $Red[9].

    Klammern können auch einer Variablen einen Typ zuweisen. Um beispielsweise die Variable mit dem Namen $A XML zu identifizieren, verwenden Sie $A=[XML] "<Test><A>value</A></Test>". Die folgenden Variablentypen sind verfügbar: Array, Bool, Byte, Char[]TypeStringScriptBlockSingleRegExLong[]LongIntDoubleInt[]CharDecimalFloatundXML.

  • { }: Verwenden Sie geschweifte Klammern, um einen Ausdruck in einen Befehl einzufügen. Beispiel: Get-Process | Where {$_.HandleCount -gt 400}.

  • |: Verwenden Sie das Pipe-Symbol, um die Ausgabe eines Befehls an einen anderen Befehl weiterzuleiten. Beispiel: Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB.

  • >: Verwenden Sie die spitze Klammer rechts, um die Ausgabe eines Befehls an eine Datei zu senden. Wenn die Datei bereits vorhanden ist, wird der Inhalt überschrieben. Beispiel: Get-TransportRule > "C:\My Documents\TransportRules.txt".

  • >>: Verwenden Sie doppelte spitze Klammern rechts, um die Ausgabe eines Befehls an eine vorhandene Datei anzuhängen. Wenn die Datei nicht vorhanden ist, wird eine neue Datei erstellt. Beispiel: Get-TransportRule >> "C:\My Documents\TransportRules.txt".

  • ": Verwenden Sie doppelte Anführungszeichen, um Textzeichenfolgen einzuschließen, die Leerzeichen enthalten. Wie zuvor beschrieben, werden Variablen durch ihre tatsächlichen Werte ersetzt.

  • $: Das Dollarzeichen weist auf eine Variable hin. Um beispielsweise eine Variable mit dem Namen $Blue "10" zu erstellen, verwenden Sie $Blue = 10. Nachdem Sie die Variable gespeichert haben, können Sie sie als Parameterwert verwenden.

  • @: Das at-Symbol verweist auf ein assoziatives Array. Weitere Informationen finden Sie unter about_Arrays.

  • $( ): Ein Dollarzeichen mit Klammern zeigt an, dass der Befehl ersetzt wurde. Eine Befehlsersetzung kann verwendet werden, wenn Sie die Ausgabe eines Befehls als Argument in einem anderen Befehl nutzen möchten. Beispiel: Get-ChildItem $(Read-Host -Prompt "Enter FileName: ").

  • ..: Doppelpunkte geben einen Wertebereich an. Wenn beispielsweise ein Array mehrere Indizes enthält, können Sie die Werte aller Indizes zwischen dem zweiten und fünften Index zurückgeben, indem Sie den folgenden Befehl ausführen: $Blue[2..5].

  • +: Mit dem Pluszeichen werden zwei Werte addiert. Beispiel: 6 + 6 ist gleich 12.

  • -: Der Minuszeichenoperator subtrahiert einen Wert von einem anderen Wert (z. B. gleich 12 - 66) oder gibt eine negative Zahl an (z. B -6 * 6 . gleich -36).

  • *: Sie können ein Sternchen für die folgenden Aufgaben verwenden:

    • Übereinstimmungszeichenfolgen: Zum Beispiel Get-User | Where-Object {$_.Department -like 'Sales*'}).
    • Multiplizieren numerischer Werte: Beispielsweise ist 6 * 6 gleich 36.
    • Wiederholen Sie den Zeichenfolgenwert so oft wie angegeben: Beispiel: "Test" * 3 ist gleich TestTestTest.
  • /: Ein Schrägstrich dividiert einen Wert durch einen anderen. Beispiel: 6 / 6 ist gleich 1.

  • %: Das Prozentzeichen hat folgende Verwendungsmöglichkeiten:

    • Bei einer numerischen Auswertung gibt sie den Rest eines Divisionsoperators zurück. Beispiel: 6 % 4 ist gleich 2.
    • In einer Pipeline ist es die Kurzform für das ForEach-Object-Cmdlet . Beispiel: Import-Csv C:\MyFile.csv | ForEach-Object {Set-Mailbox $_.Identity -Name $_.Name} is the same as Import-Csv C:\MyFile.csv | % {Set-Mailbox $_.Identity -Name $_.Name}.
    • ?: Das Fragezeichen ist die Kurzform für das Cmdlet Where-Object . Beispielsweise Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} ist dasselbe wie Get-Alias | ? {$_.Definition -eq "Clear-Host"}.|