WhatIf、Confirm、および ValidateOnly スイッチ
適用先: Exchange Server 2010 SP2, Exchange Server 2010 SP3
経験豊富な管理者やスクリプト作成者でも、また Exchange とスクリプトを初めて使用する管理者でも、WhatIf、Confirm、および ValidateOnly の各スイッチを使用することにはメリットがあります。これらのスイッチを使用すると、コマンドの実行方法を制御したり、コマンドがデータに影響を与える前にコマンドの動作を正確に指定したりすることができます。テスト環境から運用環境に移行し、新しいスクリプトやコマンドを展開するときには、この機能が非常に役立ちます。
WhatIf、Confirm、ValidateOnly の各スイッチは、フィルターを使用したり、あるいはパイプラインで Get コマンドを使用して返されるオブジェクトを変更するコマンドで使用すると、特に役に立ちます。このトピックでは各スイッチについて説明し、各スイッチのコマンド例も示します。
重要
WhatIf、Confirm、ValidateOnly スイッチをスクリプト内のコマンドで使用する場合は、スクリプトを呼び出すコマンド ラインではなく、スクリプト内の各コマンドに対して適切なスイッチを追加する必要があります。
注意
WhatIf、Confirm、および ValidateOnly は、スイッチ パラメーターと呼ばれます。スイッチ パラメーターの詳細については、「パラメーター」を参照してください。
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 スイッチは、適用対象のコマンドに対し、変更を行う前に処理を停止するよう指示します。その後、コマンドは、処理を続ける前に、各アクションの確認をユーザーに要求します。Confirm スイッチを使用すると、オブジェクトに対する変更を少しずつ進めながら、変更しようとしている特定のオブジェクトに対してだけ変更が行われることを確認できます。この機能は、多くのオブジェクトに変更を適用し、シェルの動作を厳密に制御したい場合に便利です。確認のプロンプトは、シェルがオブジェクトを変更する前に、オブジェクトごとに表示されます。
既定では、以下の動詞を含むコマンドレットに対しては、シェルが自動的に Confirm スイッチを適用します。
Clear
Disable
Dismount
Move
Remove
Stop
Suspend
Uninstall
これらの動詞のいずれかが含まれるコマンドレットが動作すると、シェルはコマンドを自動的に停止して、ユーザーが確認するのを待ってから処理を続けます。
Confirm スイッチをコマンドに手動で適用する場合、次の例で示すように、コマンドの最後で Confirm スイッチを指定します。
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] すべてはい その操作と以降のすべての操作を継続するようコマンドに指示するには、「A」 と入力します。そのコマンドが動作している間、それ以上確認プロンプトが表示されることはありません。
[N] いいえ その操作をスキップして次の操作を継続するようコマンドに指示するには、「N」 と入力します。次の操作に対して、別の確認プロンプトが表示されます。
[L] すべていいえ その操作と以降のすべての操作をスキップするようコマンドに指示するには、「L」 と入力します。
[S] 中断 現在のパイプラインを一時停止してコマンド ラインに戻るには、「S」 と入力します。パイプラインを再開するには、「Exit」 と入力します。
[?] ヘルプ コマンド ラインに確認プロンプトのヘルプを表示するには、「?」 と入力します。
シェルの既定の動作を変更し、確認プロンプトが自動的に適用されるコマンドレットに対してプロンプト表示を抑制する場合は、次の例のように、Confirm スイッチと共に値 $False
を指定します。
Get-JournalRule | Disable-JournalRule -Confirm:$False
この例では、確認プロンプトは表示されません。
注意
Confirm スイッチの既定値は $True
です。シェルの既定の動作では、確認プロンプトが自動的に表示されます。シェルのこの既定動作を抑制すると、そのコマンドの実行中はすべての確認プロンプトを表示しないように指示したことになります。コマンドは、コマンドに対する条件を満たすすべてのオブジェクトを確認なしで処理します。
ValidateOnly スイッチ
ValidateOnly スイッチは、適用対象のコマンドに対し、変更を適用する前に、操作を実行するために必要なすべての条件と要件を評価するよう指示します。ValidateOnly スイッチは、実行に時間のかかる場合があるコマンドレット、複数のシステムに対して複数の依存性があるコマンドレット、またはメールボックスのような重要なデータに影響を与えるコマンドレットに対して使用できます。
ValidateOnly スイッチをコマンドに適用すると、コマンドはプロセス全体を実行します。コマンドは、ValidateOnly スイッチが指定されていない場合と同じように各アクションを実行します。ただし、どのオブジェクトも変更しません。コマンドは、処理を完了すると、検証の結果に関する要約を表示します。検証を確認してコマンドが成功したことがわかったら、ValidateOnly スイッチを外して再びコマンドを実行できます。
ValidateOnly スイッチを使用してコマンドを実行するときは、次の例で示すように、コマンドの最後で ValidateOnly スイッチを指定します。
Get-Mailbox "Kim Akers" | Move-Mailbox -TargetDatabase "Executive Database" -ValidateOnly
このコマンド例を実行すると、次のようなテキストがシェルから返されます。
Identity : contoso.com/Users/Kim Akers
DistinguishedName : CN=Kim Akers,CN=Users,DC=contoso,DC=com
DisplayName : Kim Akers
Alias : kim
LegacyExchangeDN : /o=First Organization/ou=Exchange Administra
tive Group (FYDIBOHF23SPDLT)/cn=Recipients/c
n=Kim Akers
PrimarySmtpAddress : kim@contoso.com
SourceServer : MBX.contoso.com
SourceDatabase : Mailbox Database 0896551697
SourceGlobalCatalog : MBX
SourceDomainController : MBX.contoso.com
TargetGlobalCatalog : MBX
TargetDomainController : MBX.contoso.com
TargetMailbox :
TargetServer : MBX.contoso.com
TargetDatabase : Executive Database
MailboxSize : 0 B (0 bytes)
IsResourceMailbox : False
SIDUsedInMatch :
SMTPProxies :
SourceManager :
SourceDirectReports :
SourcePublicDelegates :
SourcePublicDelegatesBL :
SourceAltRecipient :
SourceAltRecipientBL :
SourceDeliverAndRedirect :
MatchedTargetNTAccountDN :
IsMatchedNTAccountMailboxEnabled :
MatchedContactsDNList :
TargetNTAccountDNToCreate :
TargetManager :
TargetDirectReports :
TargetPublicDelegates :
TargetPublicDelegatesBL :
TargetAltRecipient :
TargetAltRecipientBL :
TargetDeliverAndRedirect :
Options : Default
SourceForestCredential :
TargetForestCredential :
TargetFolder :
PSTFilePath :
RecoveryMailboxGuid :
RecoveryMailboxLegacyExchangeDN :
RecoveryMailboxDisplayName :
RecoveryDatabaseGuid :
StandardMessagesDeleted : 0
AssociatedMessagesDeleted : 0
DumpsterMessagesDeleted : 0
MoveType : IntraOrg
MoveStage : Validation
StartTime : 2/10/2009 12:20:04 PM
EndTime : 2/10/2009 12:20:04 PM
StatusCode : 0
StatusMessage : This mailbox can be moved to the target data
base.
ReportFile : C:\Program Files\Microsoft\Exchange Server\V
14\Logging\MigrationLogs\move-Mailbox2009021
0-122003-8563750.xml