Undo-Transaction
Reverte a transação ativa.
Syntax
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 no formulário original.
Se a transação incluir vários assinantes, um comando Desfazer Transação 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 é um de um conjunto de cmdlets que dão suporte ao recurso de transações em 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 de 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 está ativo e que a contagem de assinante é 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 pelo main transação 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 assinante agora é 2.
O sétimo comando usa Desfazer Transação para reverter a transação. Este cmdlet não retorna nenhum objeto.
O comando final é um comando Get-Transaction que obtém a transação ativa ou, nesse caso, a mais recentemente ativa. Os resultados mostram que a transação é revertida e a contagem de assinante é 0, mostrando que a transação foi revertida para todos os assinantes.
Parâmetros
-Confirm
Solicita sua confirmação antes de executar o cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
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 uma 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 termina a transação. Para usar uma transação novamente, você deve iniciar uma nova transação.