Compartilhar via


Opções WhatIf, Confirm e ValidateOnly

Aplica-se a: Exchange Server 2010

Tópico modificado em: 2009-02-20

Os administradores e criadores de script experientes, e administradores iniciantes no Exchange em scripts, podem se beneficiar usando as opções WhatIf, Confirm e ValidateOnly. Essas opções permitem controlar a execução de seus comandos e indicam exatamente o que um comando irá fazer antes de afetar dados. Essa funcionalidade é muito importante na transição do ambiente de teste para o ambiente de produção e à medida que você utiliza novos scripts ou comandos.

As opções WhatIf, Confirm e ValidateOnly são especialmente úteis quando você as utiliza com comandos que modificam objetos retornados usando um filtro ou usando um comando Get em um pipeline. Este tópico descreve cada opção e também mostra um exemplo de comando para cada opção.

Importante

Se você deseja usar as opções WhatIf, Confirm e ValidateOnly com comandos em um script, você deve adicionar a opção apropriada para cada comando no script e não na linha de comando que chama o script.

Dica

WhatIf, Confirm e ValidateOnly são chamados parâmetros de opção. Para mais informações sobre parâmetros de opção, consulte Parâmetros.

Opção WhatIf

A opção WhatIf instrui o comando para o qual é aplicado para executar, mas somente para exibir os objetos que seriam afetados executando o comando e que mudanças seriam feitas nesses objetos. O domínio não altera realmente nenhum desses objetos. Ao usar a opção WhatIf, você pode ver se as mudanças que seriam feitas a esses objetos combinam com suas expectativas, sem a preocupação de modificar esses objetos.

Ao executar um comando junto com a opção WhatIf, coloque a opção WhatIf no final do comando, como no exemplo a seguir:

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

Quando você executar esse exemplo de comando, o Shell retornará o seguinte texto:

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

Opção Confirm

A opção Confirm instrui o comando para o qual é aplicado para parar o processamento antes que qualquer mudança seja feita. O comando, então, solicita que você confirme cada ação antes de prosseguir. Ao usar a opção Confirm, poderá consultar as alterações nos objetos para certificar-se de que as mudanças são feitas somente nos objetivos específicos que você deseja mudar. Essa funcionalidade é útil quando você aplica alterações a muitos objetos e deseja ter um controle preciso sobre a operação do Shell. Um prompt de confirmação é exibido para cada objeto antes de o Shell modificá-lo.

Por padrão, o Shell aplica automaticamente a opção Confirm aos cmdlets que tem os seguintes verbos:

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

Quando um cmdlet que contém um desses verbos for executado, o Shell interromperá automaticamente o comando e aguardará sua confirmação antes de continuar o processo.

Se você deseja aplicar manualmente a opção Confirm a um comando, inclua a opção Confirm no final do comando, como no exemplo a seguir:

Get-JournalRule | Enable-JournalRule -Confirm

Quando você executar esse exemplo de comando, o Shell retornará o seguinte prompt de confirmação:

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"):

O prompt de confirmação oferece as seguintes opções:

  • [Y] Sim   Digite Y para instruir o comando para continuar a operação. A operação seguinte irá exibir outro prompt de confirmação. [Y] Yes é a opção padrão.
  • [A] Sim para Todos   Digite A para instruir o comando para continuar a operação e todas as operações subsequentes. Você não receberá outros prompts de confirmação durante a execução desse comando.
  • [N] Não   Digite N para instruir o comando para ignorar esta operação e continuar com a próxima operação. A operação seguinte irá exibir outros prompts de confirmação.
  • [L] Não para Todos   Digite L para instruir o comando para ignorar essa operação e todas as operações subsequentes.
  • [S] Suspender   Tipo S para pausar o pipeline atual e retornar à linha de comando. Digite Exit para reiniciar o pipeline.
  • [?] Ajuda   Digite ? para exibir o prompt de confirmação Help na linha de comando.

Se você substituir o comportamento padrão do Shell e suprimir o prompt de confirmação para prompt para cmdlets no qual é automaticamente aplicado, você pode incluir a opção Confirm com um valor de $False, como no exemplo a seguir:

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

Neste caso, nenhum prompt de confirmação será exibido.

Aviso

O valor padrão da opção Confirm é $True. O comportamento-padrão do Shell é mostrar automaticamente um prompt de confirmação. Se você suprimir esse comportamento-padrão, você instruirá o comando a suprimir todos os prompts de confirmação durante a execução do comando. O comando processará todos os objetos que atenderem aos respectivos critérios, sem confirmação.

Opção ValidateOnly

A opção ValidateOnly instruir o comando para o qual é aplicado para avaliar todas as condições e requisitos necessários para executar a operação antes de aplicar qualquer mudança. A opção ValidateOnly está disponível no cmdlets que pode levar um longo tempo para ser executado, tem várias dependências em vários sistemas ou afetar dados críticos, como caixas de correio.

Ao aplicar a opção ValidateOnly a um comando, o comando é executado através de todo o processo. O comando executa cada ação da mesma forma que faria sem a opção ValidateOnly. Porém, o comando não altera nenhum objeto. Quando o comando termina seu processo, exibe um resumo com os resultados da validação. Se a validação indicar que o comando foi bem-sucedido, você pode executar o comando novamente sem a opção ValidateOnly.

Ao executar um comando junto com a opção ValidateOnly, coloque a opção ValidateOnly no final do comando, como no exemplo a seguir:

Get-Mailbox "Kim Akers" | Move-Mailbox -TargetDatabase "Executive Database" -ValidateOnly

Quando você executar esse exemplo de comando, o Shell retornará o seguinte texto:

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

Para mais informações

Conceitos Básicos do Shell de Gerenciamento do Exchange