Syntax der Exchange-Cmdlets

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

  • Parameter, die für das Cmdlet verfügbar sind.
  • Werte, die jeder Parameter akzeptiert.
  • 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 Konventionen, die angeben, was erforderlich oder optional ist und wie Sie Parameter und Werte eingeben, wenn Sie einen Befehl ausführen. Diese Befehlskonventionen sind in der folgenden Tabelle aufgelistet.

Symbol Beschreibung
- Ein Bindestrich gibt einen Parameter an. Beispiel: -Identity.
< > Spitze Klammern zeigen die möglichen Werte für einen Parameter an. Beispiel: -Location <ServerName> oder -Enabled <$true | $false>.
[ ] Eckige Klammern geben optionale Parameter und deren 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 (Sie können den Parameterwert ohne Angabe des Parameternamens verwenden), und positionsale Parameter können erforderlich oder optional sein.

Bedeutet beispielsweise, Get-Mailbox [[-Identity] <MailboxIdParameter>] dass der Identity-Parameter positional (da er in eckige Klammern eingeschlossen ist) und optional ist (da das gesamte Parameter-Wert-Paar in eckige Klammern eingeschlossen ist), sodass Sie oder Get-Mailbox <MailboxIdParameter>verwenden Get-Mailbox -Identity <MailboxIdParameter> können. Auf ähnliche Weise bedeutet, Set-Mailbox [-Identity] <MailboxIdParameter> dass der Identity-Parameter positional ist (da er in eckige Klammern eingeschlossen ist) und erforderlich ist (da das gesamte Parameter-Wert-Paar nicht in eckige Klammern eingeschlossen ist), sodass Sie oder Set-Mailbox <MailboxIdParameter>verwenden Set-Mailbox -Identity <MailboxIdParameter> können.
| Pipe-Symbole in Parameterwerten geben eine Auswahl zwischen Werten an. -Enabled <$true | $false> gibt beispielsweise an, dass der Enabled-Parameter 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 teilen sich in der Regel einige Parameter.s.

Viele Cmdlets verfügen nur über einen Parametersatz, was bedeutet, dass alle Parameter miteinander verwendet werden können. 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 im gleichen Befehl verwenden können:

  • DsnCode
  • Intern
  • Language
  • Text
  • Bestätigen
  • Domaincontroller
  • Whatif

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

  • QuotaMessageType
  • Language
  • Text
  • Bestätigen
  • Domaincontroller
  • Whatif

Die Parameter DsnCode und Internal sind nur im ersten Parametersatz verfügbar. Der Parameter QuotaMessageType ist nur im zweiten Parametersatz verfügbar. 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:

  • Language
  • Text
  • Bestätigen
  • Domaincontroller
  • 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 einzuschließen, die Leerzeichen enthalten. Die folgenden Befehle verhalten sich beispielsweise genauso:

  • Get-ReceiveConnector -Identity "Contoso Receive Connector"

  • Get-ReceiveConnector -Identity 'Contoso Receive Connector'

Wenn Sie den Wert in den vorherigen Beispielen nicht in einfache oder doppelte Anführungszeichen einschließen, schlägt der Befehl fehl, da PowerShell jedes Wort als neues Argument behandelt (es wird angenommen, dass es sich um den Wert des Parameters Identity und Receive um den Wert eines nicht angegebenen Positionsparameters Contoso 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 Anführungszeichen im Vergleich zu doppelten 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.

Beispielsweise $Server = Mailbox01 ergibt die folgende Ausgabe basierend auf den verwendeten Anführungszeichen:

  • "$Server Example" führt zu Mailbox01 Example.
  • "$Server-Beispiel" führt zu $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 und nicht durch ihre normale Funktion in dieser Sprache zu identifizieren. Wenn Sie in Exchange PowerShell eine Textzeichenfolge in doppelte Anführungszeichen einschließen, ist das Escapezeichen das Escapezeichen des hinteren Anführungszeichens ( ' ).

Wenn Sie z. B. die Ausgabe The price is $23verwenden möchten, geben Sie den Wert "The price is '$23" (Der Preis ist '$23) ein. Das Escapezeichen ist für das Dollarzeichen ( $ ) erforderlich, da $ Variablen in PowerShell definiert.

Wenn Sie die Zeichenfolge in einfache Anführungszeichen einschließen, müssen Sie sich nur um das einfache Anführungszeichen selbst kümmern, das zwei einfache Anführungszeichen erfordert, um das Escapezeichen ( '' ) zu versehen.

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

Befehlsoperatoren in Exchange PowerShell

Die folgende Tabelle enthält die gültigen Operatoren, die in einem Exchange-Befehl verwendet werden können. Einige dieser Symbole wurden auch im früheren Abschnitt Befehlskonventionen in Exchange PowerShell beschrieben. Diese Symbole haben jedoch eine andere Bedeutung, wenn sie in der Befehlszeile als Operatoren verwendet werden. Beispielsweise kann das Minuszeichen, das zur Kennzeichnung eines Parameters verwendet wird, in einem Befehl auch als mathematischer Operator verwendet werden.

Operator Beschreibung
= Das Gleichheitszeichen ist ein Zuordnungszeichen. Der Wert auf der rechten Seite des Gleichheitszeichens wird der Variablen auf der linken Seite des Gleichheitszeichens zugewiesen (z $x= Get-Mailbox. B. ). Sie können auch andere Zeichen mit dem Gleichheitszeichen verwenden:
  • +=: Fügen Sie den Wert auf der rechten Seite des Gleichheitszeichens dem aktuellen Wert hinzu, der in der Variablen auf der linken Seite des Gleichheitszeichens enthalten ist.
  • -=: Subtrahiert den Wert auf der rechten Seite des Gleichheitszeichens vom aktuellen Wert, der in der Variablen auf der linken Seite des Gleichheitszeichens enthalten ist.
  • *=: Multiplizieren Sie den aktuellen Wert der Variablen auf der linken Seite des Gleichheitszeichens mit dem Wert, der auf der rechten Seite des Gleichheitszeichens angegeben ist.
  • /=: Dividieren Sie den aktuellen Wert der Variablen auf der linken Seite des Gleichheitszeichens durch den Wert, der auf der rechten Seite des Gleichheitszeichens angegeben ist.
  • %=: Ändern Sie den aktuellen Wert der Variablen auf der linken Seite des Gleichheitszeichens um den Wert, der auf der rechten Seite des Gleichheitszeichens angegeben ist.
: Verwenden Sie einen Doppelpunkt, um den Namen eines Parameters vom Wert des Parameters zu trennen. Beispiel: -Enabled:$True. Ein Doppelpunkttrennzeichen funktioniert und ist für praktisch alle Parameter-Wert-Paare optional. Für Switchparameter ist ein Doppelpunkttrennzeichen erforderlich. Weitere Informationen zu Switchparametern 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 0 (null) beginnen. Im Array mit dem Namen $Redist $Red[9]der Wert der zehnten Position im Array beispielsweise .

Klammern können einer Variablen auch einen Typ zuweisen. Verwenden Sie $A=[XML] "<Test><A>value</A></Test>"beispielsweise , um die Variable mit dem Namen $A XML zu identifizieren. Die folgenden Variablentypen sind verfügbar: Array, Bool, , Byte, Char, DecimalChar[], DoubleLongIntSingleRegExLong[]Int[]Float, , ScriptBlock, und StringTypeXML.
{ } Verwenden Sie geschweifte Klammern, um einen Ausdruck in einen Befehl einzuschließen. Beispiel: Get-Process | Where {$_.HandleCount -gt 400}
| Verwenden Sie das Pipesymbol, um die Ausgabe eines Befehls an einen anderen Befehl weiterzu leiten. Beispiel: Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB.
> Verwenden Sie die rechtwinklige Klammer, 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 rechtwinklige Klammern, um die Ausgabe eines Befehls an eine vorhandene Datei anzufügen. 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 gibt eine Variable an. Verwenden Sie $Blue = 10beispielsweise , um eine Variable mit dem Namen $Blue mit dem Wert 10 zu erstellen. Nachdem Sie die Variable gespeichert haben, können Sie sie als Wert eines Parameters verwenden.
@ Das at-Symbol verweist auf ein assoziatives Array. Weitere Informationen finden Sie unter about_Arrays.
$( ) Ein Dollarzeichen mit Klammern gibt die Befehlsersetzung an. 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: ").
.. Doppelte Punkte geben einen Wertbereich an. Wenn ein Array beispielsweise mehrere Indizes enthält, können Sie die Werte aller Indizes zwischen dem zweiten und fünften Indizes zurückgeben, indem Sie den Befehl ausführen: $Blue[2..5].
+ Der Pluszeichenoperator fügt zwei Werte zusammen. Beispiel: 6 + 6 ist gleich 12.
- Der Minuszeichenoperator subtrahiert einen Wert von einem anderen Wert (z. B 12 - 6 . gleich 6) oder gibt eine negative Zahl an (z. B -6 * 6 . gleich -36).
* Sie können ein Sternchen für Folgendes verwenden:
  • Übereinstimmungszeichenfolgen: Beispiel: Get-User | Where-Object {$_.Department -like 'Sales*'})
  • Multiplizieren numerischer Werte: z. B 6 * 6 . gleich 36
  • Wiederholen Sie den Zeichenfolgenwert mehrmals, "Test" * 3 z. B. gleich TestTestTest
/ Ein Schrägstrich teilt einen Wert durch einen anderen. Beispiel: 6 / 6 ist gleich 1.
% Das Prozentzeichen hat die folgenden Verwendungsmöglichkeiten:
  • Bei einer numerischen Auswertung wird der Rest von einem Divisionsoperator zurückgegeben. Beispiel: 6 % 4 ist gleich 2.
  • In einer Pipeline ist dies die Abkürzung für das Cmdlet ForEach-Object . 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 Abkürzung für das Cmdlet Where-Object . Beispiel: Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"} is the same as Get-Alias | ? {$_.Definition -eq "Clear-Host"}.