Compartilhar via


Undo-Transaction

Reverte a transação ativa.

Sintaxe

Default (Default)

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

Description

O cmdlet Undo-Transaction reverte a transação ativa. Quando você reverte uma transação, as alterações feitas pelos comandos na transação são descartadas e os dados são restaurados para o formulário original.

Se a transação incluir vários assinantes, um comando Undo-Transaction reverterá toda a transação para todos os assinantes.

Por padrão, as transações serão revertidas automaticamente se qualquer comando na transação gerar um erro. No entanto, as transações podem ser iniciadas usando uma preferência de reversão diferente e você pode usar esse cmdlet para reverter a transação ativa a qualquer momento.

O cmdlet Undo-Transaction faz parte de um conjunto de cmdlets que oferecem suporte ao recurso de transações no Windows PowerShell. Para obter mais informações, consulte about_Transactions.

Exemplos

Exemplo 1: Reverter a transação atual

PS C:\> Undo-Transaction

Esse comando reverte a transação atual, ativa.

Exemplo 2: Iniciar e reverter uma transação

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

Este exemplo inicia uma transação e a reverte. Como resultado, nenhuma alteração é feita no registro.

Exemplo 3: reverter uma transação para todos os assinantes

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

Este exemplo demonstra que, quando qualquer assinante reverte uma transação, toda a transação é revertida para todos os assinantes.

O primeiro comando altera o local para a chave do Registro HKCU:\Software.

O segundo comando inicia uma transação.

O terceiro comando usa o cmdlet New-Item para criar uma nova chave do Registro. O comando usa o parâmetro UseTransaction para incluir a alteração na transação.

O quarto comando usa o cmdlet Get-Transaction para obter a transação ativa. Observe que o status é Ativo e a contagem de assinantes é 1.

O quinto comando usa o comando Start-Transaction novamente. Normalmente, iniciar uma transação enquanto outra transação está em andamento ocorre quando um script usado pela transação principal inclui sua própria transação completa. Este exemplo é executado interativamente para que você possa examiná-lo em estágios. Quando você executa um comando Start-Transaction enquanto outra transação está em andamento, os comandos ingressam na transação existente como um novo assinante e a contagem de assinantes é incrementada.

O sexto comando usa o cmdlet Get-Transaction para obter a transação ativa. Observe que a contagem de assinantes agora é 2.

O sétimo comando usa Undo-Transaction para reverter a transação. Esse comando não retorna nenhum objeto.

O comando final é um comando Get-Transaction que obtém a transação ativa ou, neste caso, a mais recente Os resultados mostram que a transação foi revertida e que a contagem de assinantes é 0, mostrando que a transação foi revertida para todos os assinantes.

Parâmetros

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:cf

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:False
Dá suporte a curingas:False
DontShow:False
Aliases:wi

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

None

Não é possível redirecionar a entrada para este cmdlet.

Saídas

None

Este cmdlet não retorna nenhuma saída.

Observações

  • Você não pode reverter uma transação que foi confirmada.

    Você não pode reverter qualquer transação que não seja a transação ativa. Para reverter uma transação diferente e independente, primeiro você deve confirmar ou reverter a transação ativa.

    Reverter a transação encerra a transação. Para usar uma transação novamente, você deve iniciar uma nova transação.