Compartir a través de


Undo-Transaction

Revierte la transacción activa.

Syntax

Undo-Transaction
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

El cmdlet Undo-Transaction revierte la transacción activa. Al revertir una transacción, los cambios realizados por los comandos de la transacción se descartan y los datos se restauran a su forma original.

Si la transacción incluye varios suscriptores, un comando Undo-Transaction revierte toda la transacción para todos los suscriptores.

Las transacciones se revierten automáticamente de forma predeterminada si un comando en la transacción genera un error. Sin embargo, las transacciones se pueden iniciar mediante una preferencia de reversión diferente y puede usar este cmdlet para revertir la transacción activa en cualquier momento.

El cmdlet Undo-Transaction es uno de un conjunto de cmdlets que admiten la característica de transacciones en Windows PowerShell. Para más información, consulte about_Transactions.

Ejemplos

Ejemplo 1: Revertir la transacción actual

PS C:\> Undo-Transaction

Este comando revierte la transacción actual, activa y .

Ejemplo 2: Iniciar y revertir una transacción

PS C:\> cd hkcu:\software
PS HKCU:\Software> Start-Transaction
PS HKCU:\Software> New-Item -Path "ContosoCompany" -UseTransaction
PS HKCU:\Software> Undo-Transaction

En este ejemplo se inicia una transacción y, a continuación, se revierte. En consecuencia, no se producen cambios en el Registro.

Ejemplo 3: Revertir una transacción para todos los suscriptores

PS C:\> cd hkcu:\software
PS HKCU:\Software> Start-Transaction
PS HKCU:\Software> New-Item -Path "ContosoCompany" -UseTransaction
PS HKCU:\Software> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----
Error                1                 Active

PS HKCU:\Software> Start-Transaction
PS HKCU:\Software> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----
Error                2                 Active

PS HKCU:\Software> Undo-Transaction
PS HKCU:\Software> Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   -----
Error                0                 RolledBack

En este ejemplo se muestra que, cuando cualquier suscriptor revierte una transacción, toda la transacción se revierte para todos los suscriptores.

El primer comando cambia la ubicación a la clave del Registro HKCU:\Software.

El segundo comando inicia una transacción.

El tercer comando usa el cmdlet New-Item para crear una clave del Registro. El comando usa el parámetro UseTransaction para incluir el cambio en la transacción.

El cuarto comando usa el cmdlet Get-Transaction para obtener la transacción activa. Observe que el estado es activo y el número de suscriptores es 1.

El quinto comando usa de nuevo el comando Start-Transaction. Normalmente, el inicio de una transacción mientras que otra transacción está en curso se produce cuando un script que usa la transacción principal incluye su propia transacción completa. Este ejemplo se realiza de forma interactiva para que pueda examinarlo en fases. Al ejecutar un comando Start-Transaction mientras otra transacción está en curso, los comandos se unen a la transacción existente como un nuevo suscriptor y se incrementa el recuento de suscriptores.

El sexto comando usa el cmdlet Get-Transaction para obtener la transacción activa. Observe que el número de suscriptores ahora es 2.

El séptimo comando usa Undo-Transaction para revertir la transacción. Este comando no devuelve ningún resultado.

El comando final es un comando Get-Transaction que obtiene el activo, o en este caso, la transacción activa más recientemente. Los resultados muestran que la transacción se ha revertido y que el número de suscriptores es 0, lo que pone de manifiesto que la transacción se revirtió para todos los suscriptores.

Parámetros

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

No se puede canalizar la entrada a este cmdlet.

Salidas

None

Este cmdlet no genera resultados de ningún tipo.

Notas

  • No se puede revertir una transacción que se ha confirmado.

    No se puede revertir una transacción que no sea la transacción activa. Para revertir una transacción independiente distinta, antes debe confirmar o revertir la transacción activa.

    Cuando una transacción se revierte, esta finaliza. Para volver a usar una transacción, deberá iniciar una nueva transacción.