Modificadores WhatIf, Confirm y ValidateOnly

Se aplica a: Exchange Server 2013

Tanto los administradores experimentados como los escritores de scripts, así como los administradores que no son nuevos en Exchange y scripting, pueden beneficiarse del uso de los modificadores WhatIf, Confirm y ValidateOnly . Estos modificadores permiten controlar la forma en la que se ejecutan los comandos e indican qué hará exactamente un comando antes de afectar a los datos. Esta funcionalidad es muy importante en las transiciones del entorno de prueba al entorno de producción y cuando aplica nuevos comandos o scripts.

Los modificadores WhatIf, Confirm y ValidateOnly son especialmente útiles cuando se usan con comandos que modifican objetos devueltos mediante un filtro o mediante un comando Get en una canalización. Este tema describe cada modificador y también proporciona un comando de ejemplo para cada modificador.

Importante

Si desea usar los modificadores WhatIf, Confirm y ValidateOnly con comandos en un script, debe agregar el modificador adecuado a cada comando del script y no en la línea de comandos que llama al script.

Nota:

WhatIf, Confirm y ValidateOnly se denominan parámetros switch. Para obtener más información acerca de los parámetros de modificador, consulte Parameters.

Modificador WhatIf

El modificador WhatIf indica el comando al que se aplica para ejecutarse, pero solo para mostrar los objetos que se verían afectados al ejecutar el comando y qué cambios se realizarían en esos objetos. En realidad, el modificador no cambia ninguno de esos objetos. Al usar el modificador WhatIf , puede ver si los cambios que se realizarían en esos objetos coinciden con sus expectativas, sin preocuparse de modificar esos objetos.

Al ejecutar un comando junto con el modificador WhatIf , coloca el modificador WhatIf al final del comando, como en el ejemplo siguiente:

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

Cuando ejecuta este comando de ejemplo, el Shell devuelve el siguiente texto:

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

Modificador Confirm

El modificador Confirmar indica el comando al que se aplica para detener el procesamiento antes de que se realicen los cambios. De esta forma, el comando le pide que confirme cada acción antes de continuar. Al usar el modificador Confirmar , puede realizar los cambios en los objetos para asegurarse de que los cambios se realizan solo 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. Se muestra una solicitud de confirmación para cada objeto antes de que el Shell modifique el objeto.

De forma predeterminada, el Shell aplica automáticamente el modificador Confirm a los cmdlets que tienen los verbos siguientes:

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

Cuando se ejecuta un cmdlet que tiene cualquiera de estos verbos, el Shell detiene automáticamente el comando y espera la confirmación antes de que continúe procesándose.

Si desea aplicar manualmente el modificador Confirmar a un comando, incluya el modificador Confirmar al final del comando, como en el ejemplo siguiente:

Get-JournalRule | Enable-JournalRule -Confirm

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

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

La solicitud de confirmación ofrece las siguientes opciones:

  • [Y] Sí: escriba Y para indicar al comando que continúe con la operación. La siguiente operación presentará otra solicitud de confirmación. [Y] Yes es la opción predeterminada.

  • [A] Sí a todos: escriba A para indicar al comando que continúe la operación y todas las operaciones posteriores. No recibirá mensajes de confirmación adicionales durante este comando.

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

  • [L] No a todos: escriba L para indicar al comando que omita esta operación y todas las operaciones posteriores.

  • [S] Suspender: escriba S para pausar la canalización actual y volver a la línea de comandos. Escriba Exit para reanudar el canal.

  • [?] Ayuda: Escriba ? para mostrar la ayuda del símbolo del sistema en la línea de comandos.

Si desea invalidar el comportamiento predeterminado del Shell y suprimir la solicitud de confirmación de los cmdlets en los que se aplica automáticamente, puede incluir el modificador Confirmar con un valor de $False, como en el ejemplo siguiente:

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

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

Advertencia

El valor predeterminado del modificador Confirmar es $True. El comportamiento predeterminado del Shell es mostrar automáticamente una solicitud de confirmación. Si suprime este comportamiento predeterminado, instruye al comando que suprima todas las solicitudes de confirmación que aparezcan durante la ejecución del comando. El comando procesará todos los objetos que cumplan los criterios sin confirmación.

Modificador ValidateOnly

El modificador ValidateOnly indica al comando al que se aplica para evaluar todas las condiciones y requisitos necesarios para realizar la operación antes de aplicar los cambios. El modificador ValidateOnly está disponible en cmdlets que pueden tardar mucho tiempo en ejecutarse, tener varias dependencias en varios sistemas o afectar a datos críticos, como buzones de correo.

Cuando se aplica el modificador ValidateOnly a un comando, el comando se ejecuta a través de todo el proceso. El comando realiza cada acción como lo haría sin el modificador 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 se realizó correctamente, puede volver a ejecutar el comando sin el modificador ValidateOnly .

Al ejecutar un comando junto con el modificador ValidateOnly , coloca el modificador ValidateOnly al final del comando.