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*" }