Parâmetros WhatIf, Confirm e ValidateOnly

 

Aplica-se a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Tópico modificado em: 2007-06-19

O Shell de Gerenciamento do Exchange é uma interface de gerenciamento muito poderosa e flexível. Você pode gerenciar sua infra-estrutura de modo interativo, na linha de comando. Você pode criar e executar scripts que automatizam tarefas complexas ou usadas freqüentemente. Ao aprender a usar o Shell de Gerenciamento do Exchange por si só, com scripts, ou os dois, convém exibir os resultados de um comando antes que ele afete os dados. Além disso, é conveniente confirmar que um comando está prestes a ser executado. Essa funcionalidade é importante principamente durante a transição do ambiente de teste para o ambiente de produção e à medida que você realiza novos scripts ou comandos.

Os administradores e criadores de script experientes, e administradores iniciantes no Exchange e em scripts podem se beneficiar com o uso dos parâmetros WhatIf, Confirm e Validate. Esses parâmetros estão disponíveis no Shell de Gerenciamento do Exchange. Esses parâmetros permitem controlar a execução de seus comandos e indicam exatamente o que um comando irá fazer antes de afetar dados. Os parâmetros WhatIf, Confirm e Validate são úteis principalmente quando você os utiliza juntamente com comandos que modificam objetos retornados com o uso de um filtro ou um comando Get em um pipeline. Este tópico descreve cada parâmetro.

Importante

Para usar os parâmetros WhatIf, Confirm e ValidateOnly com comandos em um script, adicione o parâmetro adequado a cada comando do script e não na linha de comando que chama o script.

Dica

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

Parâmetro WhatIf

O parâmetro WhatIf instrui o comando ao qual é aplicado a executar, mas apenas para exibir os objetos afetados pela execução do comando e as alterações feitas nesses objetos. O domínio não altera realmente nenhum desses objetos. Ao usar o parâmetro WhatIf, você pode verificar se as alterações que seriam feitas nesses objetos corresponderiam às expectativas, sem se preocupar com a modificação desses objetos.

Ao executar um comando junto com o parâmetro WhatIf, coloque o parâmetro WhatIf no final do comando, como no exemplo a seguir:

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

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

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

Para exibir uma lista de cmdlets que aceitam o parâmetro WhatIf, digite o seguinte comando no Shell de Gerenciamento do Exchange:

Get-ExCommand | Where { $_.Definition -Like "*WhatIf*" }

Parâmetro Confirm

O parâmetro Confirm instrui o comando ao qual é aplicado a interromper o processamento antes de fazer qualquer alteração. O comando, então, solicita que você confirme cada ação antes de prosseguir. Ao usar o parâmetro Confirm, você poderá consultar as alterações nos objetos para certificar-se de que estão sendo feitas somente nos objetos específicos a serem alterados. Essa funcionalidade é útil quando você aplica alterações a muitos objetos e deseja ter um controle preciso sobre a operação do Shell de Gerenciamento do Exchange. Um prompt de confirmação é exibido para cada objeto antes de o Shell de Gerenciamento do Exchange modificá-lo.

Por padrão, o Shell de Gerenciamento do Exchange aplica automaticamente o parâmetro Confirm a cmdlets que têm os seguintes verbos:

  • Remove

  • Move

  • Stop

  • Clear

  • Suspend

  • Uninstall

  • Dismount

  • Disable

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

Ao aplicar manualmente o parâmetro Confirm a um comando, inclua o parâmetro Confirm no final do comando, como no exemplo a seguir:

Get-JournalRule | Enable-JournalRule -Confirm

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

[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 a 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 a prosseguir a operação e todas as operações subseqüentes. Você não receberá outros prompts de confirmação durante a execução desse comando.

  • [N] Não   Digite N para instruir o comando a ignorar essa operação e continuar a operação seguinte. A operação seguinte irá exibir outros prompts de confirmação.

  • [L] Não para Todos   Digite L para instruir o comando a ignorar essa operação e todas as operações subseqüentes.

  • [S] Suspender   Digite S para interromper o pipeline atual e retornar para a linha de comando. Digite Sair para retomar o pipeline.

  • [?] Ajuda   Digite ? para exibir a Ajuda do prompt de confirmação na linha de comando.

Para substituir o comportamento padrão do Shell de Gerenciamento do Exchange e suprimir o prompt de confirmação dos cmdlets aos quais estiver aplicado automaticamente, você poderá incluir o parâmetro Confirm com o valor $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 do parâmetro Confirm é $True. O comportamento padrão do Shell de Gerenciamento do Exchange é exibir automaticamente um prompt de confirmação. Se você suprimir esse comportamento padrão do Shell de Gerenciamento do Exchange, instruirá o comando a suprimir todos os prompts de confirmação durante a sua execução. O comando processará todos os objetos que atenderem aos respectivos critérios, sem confirmação.

Para exibir uma lista de cmdlets que aceitam o parâmetro Confirm, digite o seguinte comando no Shell de Gerenciamento do Exchange:

Get-ExCommand | Where { $_.Definition -Like "*Confirm*" }

Parâmetro ValidateOnly

O parâmetro ValidateOnly instrui o comando ao qual ele é aplicado a avaliar todas as condições e requisitos necessários para executar a operação antes de você efetuar quaisquer alterações. O parâmetro ValidateOnly está disponível em cmdlets que podem demorar para serem executados, ter dependências em vários sistemas ou afetar dados importantes, como caixas de correio.

Quando você aplica o parâmetro ValidateOnly a um comando, esse comando é executado ao longo de todo o processo. O comando executa cada ação da mesma forma que faria sem o parâmetro 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ê poderá executá-lo novamente sem o parâmetro ValidateOnly.

Ao executar um comando juntamente com o parâmetro ValidateOnly, coloque o parâmetro ValidateOnly no final do comando, como no exemplo a seguir:

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

Quando você executar esse comando do exemplo, o Shell de Gerenciamento do Exchange 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 Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=kim
PrimarySmtpAddress               : kim@contoso.com
SourceServer                     : Win2003MS.contoso.com
SourceDatabase                   : WIN2003MS\First Storage Group\Mailbox Database
SourceGlobalCatalog              : Win2003MS.contoso.com
TargetGlobalCatalog              : Win2003MS.contoso.com
TargetDomainController           : Win2003MS.contoso.com
TargetMailbox                    :
TargetServer                     : Win2003MS.contoso.com
TargetDatabase                   : WIN2003MS\Second Storage Group\Executive Database
MailboxSize                      : 0KB
IsResourceMailbox                : False
SIDUsedInMatch                   :
SMTPProxies                      :
SourceManager                    :
SourceDirectReports              :
SourcePublicDelegates            :
SourcePublicDelegatesBL          :
MatchedTargetNTAccountDN         :
IsMatchedNTAccountMailboxEnabled :
MatchedContactsDNList            :
TargetNTAccountDNToCreate        :
TargetManager                    :
TargetDirectReports              :
TargetPublicDelegates            :
TargetPublicDelegatesBL          :
Options                          : Default
SourceForestCredential           :
TargetForestCredential           :
TargetFolder                     :
RsgMailboxGuid                   :
RsgMailboxLegacyExchangeDN       :
RsgMailboxDisplayName            :
RsgDatabaseGuid                  :
MoveType                         : IntraOrg
MoveStage                        : Validation
StartTime                        : 7/17/2006 4:39:13 PM
EndTime                          : 7/17/2006 4:39:14 PM
StatusCode                       : 0
StatusMessage                    : This mailbox can be moved to the target database.

Para exibir uma lista de cmdlets que aceitam o parâmetro ValidateOnly, digite o seguinte comando no Shell de Gerenciamento do Exchange:

Get-ExCommand | Where { $_.Definition -Like "*ValidateOnly*" }