Parámetros WhatIf, Confirm y ValidateOnly

 

Se aplica a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Última modificación del tema: 2007-06-19

El Shell de administración de Exchange es una interfaz de administración muy eficaz y flexible. Mediante la línea de comandos puede administrar de forma interactiva su infraestructura. Puede crear y ejecutar scripts que automaticen las tareas complejas o frecuentes. Mientras aprende a utilizar el Shell de administración de Exchange o a escribir scripts, puede que desee ver los resultados de un comando antes de que afecte a los datos. Asimismo puede que desee confirmar la ejecución inminente de un comando. Esta funcionalidad es especialmente importante en las transiciones del entorno de prueba al entorno de producción y cuando aplica nuevos comandos o scripts.

Tanto los administradores y autores de scripts experimentados, como los administradores nuevos en Exchange y scripting, se pueden beneficiar de los parámetros WhatIf, Confirm y ValidateOnly. Estos parámetros están disponibles en el Shell de administración de Exchange, y Le permiten controlar la forma en la que se ejecutan los comandos y le indican qué hará exactamente un comando antes de afectar a los datos. Los parámetros WhatIf, Confirm y ValidateOnly son especialmente útiles cuando se usan con comandos que modifican objetos que se devuelven al utilizar un filtro o un comando Get en un canal. En este tema se describen cada uno de ellos.

Importante

Si desea utilizar los parámetros WhatIf, Confirm y ValidateOnly con comandos de un script, debe agregar el parámetro adecuado a cada comando del script y no a la línea de comandos que llama al script.

Nota

Los parámetros WhatIf, Confirm y ValidateOnly se conocen como parámetros modificadores. Para obtener más información acerca de los parámetros modificadores, vea Parámetros(en inglés).

Parámetro Whatlf

El parámetro WhatIf instruye al comando al que se aplica que se ejecute, pero sólo para mostrar los objetos que se verían afectados por la ejecución del comando y qué cambios produciría en los mismos. El dominio en realidad no cambia ninguno de esos objetos. Cuando utiliza el parámetro WhatIf, puede ver si los cambios que se producirían en los objetos son los que esperaba, sin la preocupación de modificar los objetos.

Cuando ejecuta un comando junto al parámetro WhatIf, el parámetro se coloca al final del comando, como se observa en el siguiente ejemplo:

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

Cuando ejecuta este comando de ejemplo, el Shell de administración de Exchange devuelve el siguiente texto:

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

Para ver una lista de cmdlets que aceptan el parámetro WhatIf, escriba el siguiente comando en el Shell de administración de Exchange:

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

Parámetro Confirm

El parámetro Confirm instruye al comando al que se aplica que detenga el procesamiento antes de hacer cualquier cambio. De esta forma, el comando le pide que confirme cada acción antes de continuar. Cuando utiliza el parámetro parámetro Confirm, puede escalonar los cambios en los objetos para asegurarse de que los cambios se realizan sólo en los objetos específicos que desea cambiar. Esta funcionalidad es útil cuando aplica cambios a muchos objetos y desea tener un control preciso del funcionamiento del Shell de administración de Exchange. Se muestra una petición de confirmación para cada objeto antes de que el Shell de administración de Exchange lo modifique.

De forma predeterminada, el Shell de administración de Exchange aplica automáticamente el parámetro Confirm a los cmdlets que contengan los siguientes verbos:

  • Remove (quitar)

  • Move (mover)

  • Stop (detener)

  • Clear (borrar)

  • Suspend (suspender)

  • Uninstall (desinstalar)

  • Dismount (desmontar)

  • Disable (deshabilitar)

Cuando se ejecuta un cmdlet que contiene cualquiera de estos verbos, el Shell de administración de Exchange detiene automáticamente el comando y espera a que lo confirme antes continuar el proceso.

Cuando aplique manualmente el parámetro Confirm a un comando, incluya el parámetro al final del comando, como se observa en el siguiente ejemplo:

Get-JournalRule | Enable-JournalRule -Confirm

Cuando ejecuta este comando de ejemplo, el Shell de administración de Exchange devuelve la siguiente petición de confirmación:

[Y] Yes   [A] Yes to All   [N] No   [L] No to All   [S] Suspend   [?] Help   
(default is "Y"):

La petición de confirmación le ofrece las siguientes opciones:

  • [Y] Yes   EscribaY para instruir al comando que continúe la operación. La siguiente operación presentará otra petición de confirmación. [Y] Yes es la opción predeterminada.

  • [A] Yes to All   Escriba A para instruir al comando que continúe la operación y todas las operaciones posteriores. Tras haber elegido esta opción no recibirá más peticiones de confirmación en relación a este comando.

  • [N] No   Escriba N para instruir al comando que omita esta operación y continúe con la siguiente. La siguiente operación presentará otra petición de confirmación.

  • [L] No to All   Escriba L para instruir al comando que omita esta operación y todas las operaciones posteriores.

  • [S] Suspend   Escriba S para detener el canal actual y volver a la línea de comandos. Escriba Exit para reanudar el canal.

  • [?] Help   Escriba ? para mostrar la ayuda de la petición de confirmación en la línea de comandos.

Si desea reemplazar el comportamiento predeterminado del Shell de administración de Exchange y suprimir la petición de confirmación para los cmdlets a los que se aplica automáticamente, puede incluir el parámetro Confirm con el valor $False, como se observa en el siguiente ejemplo:

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

En este caso no se muestra ninguna petición de confirmación.

Advertencia

El valor predeterminado del parámetro Confirm es $True. El comportamiento predeterminado del Shell de administración de Exchange es mostrar automáticamente una petición de confirmación. Si suprime este comportamiento predeterminado, instruye al comando que suprima todas las peticiones de confirmación durante todo el comando. El comando procesará todos los objetos que cumplan los criterios sin confirmación.

Para ver una lista de cmdlets que aceptan el parámetro Confirm, escriba el siguiente comando en el Shell de administración de Exchange:

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

Parámetro ValidateOnly

El parámetro ValidateOnly instruye al comando al que se aplica que valore todas las condiciones y requisitos necesarios para realizar la operación antes de aplicar ningún cambio. El parámetro ValidateOnly está disponible para cmdlets que pueden tardar tiempo en ejecutarse, dependen de varios sistemas o afectan a datos críticos, como los buzones.

Cuando aplica el parámetro ValidateOnly a un comando, éste ejecuta todo el proceso. El comando realiza todas las acciones como lo haría sin el parámetro ValidateOnly , pero no cambia ningún objeto. Cuando termina su proceso, muestra un resumen con los resultados de la validación. Si la validación indica que el comando no ha presentado errores, puede volver a ejecutarlo pero esta vez sin el parámetro ValidateOnly .

Cuando ejecuta un comando junto al parámetro ValidateOnly, el parámetro se coloca al final del comando, como se observa en el siguiente ejemplo:

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

Cuando ejecuta este comando de ejemplo, el Shell de administración de Exchange devuelve el siguiente 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 ver una lista de cmdlets que aceptan el parámetro ValidateOnly, escriba el siguiente comando en el Shell de administración de Exchange:

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