WhatIf、Confirm、および ValidateOnly スイッチ
製品: Exchange Server 2013
経験豊富な管理者とスクリプトライター、および Exchange とスクリプトを初めて使用する管理者の両方が、 WhatIf、 Confirm、 ValidateOnly スイッチを使用することでメリットを得ることができます。 これらのスイッチを使用すると、コマンドの実行方法を制御したり、コマンドがデータに影響を与える前にコマンドの動作を正確に指定したりすることができます。 テスト環境から運用環境に移行し、新しいスクリプトやコマンドを展開するときには、この機能が非常に役立ちます。
WhatIf、Confirm、ValidateOnly スイッチは、フィルターを使用するか、パイプラインで Get コマンドを使用して返されるオブジェクトを変更するコマンドで使用する場合に特に便利です。 このトピックでは各スイッチについて説明し、各スイッチのコマンド例も示します。
重要
スクリプト内のコマンドで WhatIf、 Confirm、 ValidateOnly スイッチを使用する場合は、スクリプトを呼び出すコマンド ラインではなく、スクリプト内の各コマンドに適切なスイッチを追加する必要があります。
注:
WhatIf、 Confirm、 ValidateOnly はスイッチ パラメーターと呼ばれます。 スイッチ パラメーターの詳細については、「 Parameters」を参照してください。
WhatIf スイッチ
WhatIf スイッチは、実行に適用されるコマンドに指示しますが、コマンドの実行によって影響を受けるオブジェクトと、それらのオブジェクトに対して行われる変更のみを表示します。 スイッチでは、これらのオブジェクトは実際には変更されません。 WhatIf スイッチを使用すると、それらのオブジェクトに対して行われる変更が予想に合っているかどうかを確認できます。これらのオブジェクトを変更する必要はありません。
WhatIf スイッチと共にコマンドを実行すると、次の例のように、コマンドの最後に WhatIf スイッチを配置します。
New-AcceptedDomain -Name "Contoso Domain" -DomainName "contoso.com" -WhatIf
このコマンド例を実行すると、次のようなテキストがシェルから返されます。
What if: Creating Accepted Domain "Contoso Domain" with domain name "contoso.com".
Confirm スイッチ
[確認] スイッチは、変更が行われる前に処理を停止するために適用されるコマンドに指示します。 その後、コマンドは、処理を続ける前に、各アクションの確認をユーザーに要求します。 [確認] スイッチを使用すると、オブジェクトの変更をステップ実行して、変更する特定のオブジェクトにのみ変更が加えられたことを確認できます。 この機能は、多くのオブジェクトに変更を適用し、シェルの動作を厳密に制御したい場合に便利です。 確認のプロンプトは、シェルがオブジェクトを変更する前に、オブジェクトごとに表示されます。
既定では、シェルは次の動詞を持つコマンドレットに Confirm スイッチを自動的に適用します。
- Clear
- Disable
- Dismount
- Move
- Remove
- Stop
- Suspend
- Uninstall
これらの動詞のいずれかを持つコマンドレットを実行すると、シェルはコマンドを自動的に停止し、受信確認を待ってから処理を続行します。
コマンドに [確認 ] スイッチを手動で適用する場合は、次の例のように、コマンドの最後に [確認 ] スイッチを含めます。
Get-JournalRule | Enable-JournalRule -Confirm
このコマンド例を実行すると、次のような確認プロンプトがシェルから返されます。
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"):
確認プロンプトでは以下の選択肢があります。
[Y] はい: 操作を続行するようにコマンドに指示するには、「 Y 」と入力します。 次の操作に対して、別の確認プロンプトが表示されます。 既定値は
[Y] Yes
です。[A] Yes to All: 「 A 」と入力して、操作と後続のすべての操作を続行するようにコマンドに指示します。 このコマンドの間、追加の確認プロンプトは表示されません。
[N] いいえ: N と入力して、この操作をスキップし、次の操作を続行するようにコマンドに指示します。 次の操作に対して、別の確認プロンプトが表示されます。
[L] No to All:「 L 」と入力して、この操作と後続のすべての操作をスキップするようにコマンドに指示します。
[S] Suspend: 「S 」と入力して現在のパイプラインを一時停止し、コマンド ラインに戻ります。 パイプラインを再開するには、「Exit」 と入力します。
[?]ヘルプ: コマンド ラインに確認プロンプト 「ヘルプ」と入力します。
シェルの既定の動作をオーバーライドし、自動的に適用されるコマンドレットの確認プロンプトを抑制する場合は、次の例に示すように、値 が $False
の [確認] スイッチを含めることができます。
Get-JournalRule | Disable-JournalRule -Confirm:$False
この例では、確認プロンプトは表示されません。
警告
[確認] スイッチの既定値は です$True
。 シェルの既定の動作では、確認プロンプトが自動的に表示されます。 シェルのこの既定動作を抑制すると、そのコマンドの実行中はすべての確認プロンプトを表示しないように指示したことになります。 コマンドは、コマンドに対する条件を満たすすべてのオブジェクトを確認なしで処理します。
ValidateOnly スイッチ
ValidateOnly スイッチは、変更を適用する前に操作を実行するために必要なすべての条件と要件を評価するために適用されるコマンドに指示します。 ValidateOnly スイッチは、実行に時間がかかる、複数のシステムに複数の依存関係がある、またはメールボックスなどの重要なデータに影響を与える可能性があるコマンドレットで使用できます。
ValidateOnly スイッチをコマンドに適用すると、コマンドはプロセス全体で実行されます。 コマンドは、 ValidateOnly スイッチを使用しない場合と同様に、各アクションを実行します。 ただし、どのオブジェクトも変更しません。 コマンドは、処理を完了すると、検証の結果に関する要約を表示します。 検証でコマンドが成功したことが示されている場合は、 ValidateOnly スイッチなしでコマンドを再度実行できます。
ValidateOnly スイッチと共にコマンドを実行する場合は、コマンドの最後に ValidateOnly スイッチを配置します。