Optionen "WhatIf", "Confirm" und "ValidateOnly"

Gilt für: Exchange Server 2013

Sowohl erfahrene Administratoren als auch Skriptautoren sowie Administratoren, die noch nicht mit Exchange und Skripterstellung vertraut sind, können von der Verwendung der Optionen WhatIf, Confirm und ValidateOnly profitieren. Mit ihrer Hilfe können Sie die Ausführung von Befehlen steuern und exakt anzeigen, welches Ergebnis ein Befehl liefert, bevor dieser auf Daten angewendet wird. Diese Funktionalität ist besonders wichtig beim Wechsel von der Testumgebung zur Produktionsumgebung und beim Bereitstellen neuer Skripts oder Befehle.

Die Optionen WhatIf, Confirm und ValidateOnly sind besonders nützlich, wenn Sie sie mit Befehlen verwenden, die Objekte ändern, die mithilfe eines Filters oder mithilfe eines Get-Befehls in einer Pipeline zurückgegeben werden. In diesem Thema werden die einzelnen Parameter beschrieben und Beispielbefehle bereitgestellt.

Wichtig

Wenn Sie die Optionen WhatIf, Confirm und ValidateOnly mit Befehlen in einem Skript verwenden möchten, müssen Sie jedem Befehl im Skript und nicht in der Befehlszeile, die das Skript aufruft, den entsprechenden Schalter hinzufügen.

Hinweis

WhatIf, Confirm und ValidateOnly werden als Switch-Parameter bezeichnet. Weitere Informationen zu Schalterparametern finden Sie unter Parameters.

Option "WhatIf"

Die WhatIf-Option weist den Befehl an, für den er ausgeführt wird, aber nur, um die Objekte anzuzeigen, die von der Ausführung des Befehls betroffen wären, und welche Änderungen an diesen Objekten vorgenommen würden. Der Schalter ändert keines dieser Objekte. Wenn Sie den Schalter WhatIf verwenden, können Sie sehen, ob die Änderungen, die an diesen Objekten vorgenommen werden, Ihren Erwartungen entsprechen, ohne sich gedankenlos um die Änderung dieser Objekte kümmern zu müssen.

Wenn Sie einen Befehl zusammen mit dem Schalter WhatIf ausführen, platzieren Sie den Schalter WhatIf am Ende des Befehls, wie im folgenden Beispiel gezeigt:

New-AcceptedDomain -Name "Contoso Domain" -DomainName "contoso.com" -WhatIf

Wenn Sie diesen Beispielbefehl ausführen, wird der folgende Text von der Shell zurückgegeben:

What if: Creating Accepted Domain "Contoso Domain" with domain name "contoso.com".

Option "Confirm"

Der Schalter Confirm weist den Befehl, auf den er angewendet wird, an, die Verarbeitung zu beenden, bevor Änderungen vorgenommen werden. Danach werden Sie aufgefordert, die einzelnen Aktionen zu bestätigen, bevor die Verarbeitung fortgesetzt wird. Wenn Sie den Schalter Bestätigen verwenden, können Sie Änderungen an Objekten schrittweise durchlaufen, um sicherzustellen, dass Änderungen nur an den spezifischen Objekten vorgenommen werden, die Sie ändern möchten. Diese Funktion ist hilfreich, wenn Sie viele Objekte ändern und eine präzise Kontrolle über die Operation der Shell wünschen. Es wird eine Bestätigungsaufforderung zu jedem einzelnen Objekt angezeigt, bevor dieses von der Shell geändert wird.

Standardmäßig wendet die Shell den Schalter Confirm automatisch auf Cmdlets an, die die folgenden Verben aufweisen:

  • Clear
  • Disable
  • Dismount
  • Move
  • Remove
  • Stop
  • Suspend
  • Uninstall

Wenn ein Cmdlet ausgeführt wird, das über eines dieser Verben verfügt, beendet die Shell den Befehl automatisch und wartet auf Ihre Bestätigung, bevor die Verarbeitung fortgesetzt wird.

Wenn Sie den Schalter Confirm manuell auf einen Befehl anwenden möchten, schließen Sie den Schalter Confirm am Ende des Befehls ein, wie im folgenden Beispiel gezeigt:

Get-JournalRule | Enable-JournalRule -Confirm

Wenn Sie diesen Beispielbefehl ausführen, wird die folgende Bestätigungsaufforderung von der Shell zurückgegeben:

Confirm
Are you sure you want to perform this action?
Enabling journal rule "Litigation Journal Rule".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):

Die Bestätigungsaufforderung bietet folgende Auswahlmöglichkeiten:

  • [Y] Ja: Geben Sie Y ein, um den Befehl anzuweisen, den Vorgang fortzusetzen. Der nächste Vorgang zeigt eine weitere Bestätigungsaufforderung an. [Y] Yes ist standardmäßig ausgewählt.

  • [A] Ja für alle: Geben Sie A ein, um den Befehl anzuweisen, den Vorgang und alle nachfolgenden Vorgänge fortzusetzen. Sie erhalten für die Dauer dieses Befehls keine zusätzlichen Bestätigungsaufforderungen.

  • [N] Nein: Geben Sie N ein, um den Befehl anzuweisen, diesen Vorgang zu überspringen und mit dem nächsten Vorgang fortzufahren. Beim nächsten Vorgang wird eine weitere Bestätigungsaufforderung angezeigt.

  • [L] Nein für alle: Geben Sie L ein, um den Befehl anzuweisen, diesen Vorgang und alle nachfolgenden Vorgänge zu überspringen.

  • [S] Anhalten: Geben Sie S ein, um die aktuelle Pipeline anzuhalten und zur Befehlszeile zurückzukehren. Geben Sie Exit ein, um die Pipeline fortzusetzen.

  • [?] Hilfe: Geben Sie ? ein, um die Hilfe zur Bestätigung in der Befehlszeile anzuzeigen.

Wenn Sie das Standardverhalten der Shell außer Kraft setzen und die Bestätigungsaufforderung für Cmdlets unterdrücken möchten, auf die sie automatisch angewendet wird, können Sie den Schalter Confirm mit dem Wert von $Falseeinschließen, wie im folgenden Beispiel gezeigt:

Get-JournalRule | Disable-JournalRule -Confirm:$False

In diesem Fall wird keine Bestätigungsaufforderung angezeigt.

Warnung

Der Standardwert des Schalters Confirm ist $True. Die Shell zeigt standardmäßig automatisch eine Bestätigungsaufforderung an. Wenn Sie dieses Standardverhalten unterdrücken, weisen Sie den Befehl an, alle Bestätigungsaufforderungen für die Dauer des Befehls zu unterdrücken. Der Befehl verarbeitet alle Objekte, die den Befehlskriterien entsprechen, ohne Bestätigung.

Option "ValidateOnly"

Der Schalter ValidateOnly weist den Befehl, auf den er angewendet wird, an, alle Bedingungen und Anforderungen auszuwerten, die zum Ausführen des Vorgangs erforderlich sind, bevor Sie Änderungen anwenden. Der ValidateOnly-Schalter ist für Cmdlets verfügbar, deren Ausführung sehr lange dauern kann, mehrere Abhängigkeiten von mehreren Systemen aufweisen oder sich auf kritische Daten wie Postfächer auswirken.

Wenn Sie den ValidateOnly-Schalter auf einen Befehl anwenden, wird der Befehl durch den gesamten Prozess ausgeführt. Der Befehl führt jede Aktion wie ohne den ValidateOnly-Schalter aus. Er ändert dabei jedoch keines der Objekte. Wenn der Befehl den Prozess abschließt, zeigt er eine Zusammenfassung mit dem Ergebnis der Überprüfung an. Wenn die Überprüfung anzeigt, dass der Befehl erfolgreich war, können Sie den Befehl ohne den ValidateOnly-Schalter erneut ausführen.

Wenn Sie einen Befehl zusammen mit dem ValidateOnly-Schalter ausführen, platzieren Sie den Schalter ValidateOnly am Ende des Befehls.