Undo-Transaction
Esegue il rollback della transazione attiva.
Sintassi
Undo-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il Undo-Transaction
cmdlet esegue il rollback della transazione attiva. Quando si esegue il rollback di una transazione, le modifiche apportate dai comandi nella transazione vengono rimosse e i dati vengono ripristinati nel formato originale.
Se la transazione include più sottoscrittori, un Undo-Transaction
comando esegue il rollback dell'intera transazione per tutti i sottoscrittori.
Per impostazione predefinita, il rollback delle transazioni viene eseguito automaticamente se un comando qualsiasi nella transazione genera un errore. Tuttavia, le transazioni possono essere avviate usando una preferenza di rollback diversa ed è possibile usare questo cmdlet per eseguire il rollback della transazione attiva in qualsiasi momento.
Il Undo-Transaction
cmdlet è uno dei set di cmdlet che supportano la funzionalità transazioni in Windows PowerShell. Per altre informazioni, vedere about_Transactions.
Esempio
Esempio 1: Eseguire il rollback della transazione corrente
Undo-Transaction
Questo comando esegue il rollback della transazione corrente, attiva e attiva.
Esempio 2: Avviare ed eseguire il rollback di una transazione
Set-Location hkcu:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
Undo-Transaction
In questo esempio viene avviata una transazione e quindi ne viene eseguito il rollback. Di conseguenza, non vengono apportate modifiche al Registro di sistema.
Esempio 3: Eseguire il rollback di una transazione per tutti i sottoscrittori
Set-Location hkcu:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 1 Active
Start-Transaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 2 Active
Undo-Transaction
Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- -----
Error 0 RolledBack
In questo esempio viene illustrato che quando un sottoscrittore esegue il rollback di una transazione, viene eseguito il rollback dell'intera transazione per tutti i sottoscrittori.
Il primo comando modifica il percorso nella chiave del HKCU:\Software
Registro di sistema.
Il secondo comando avvia una transazione.
Il terzo comando usa il New-Item
cmdlet per creare una nuova chiave del Registro di sistema. Il comando usa il parametro UseTransaction per includere la modifica nella transazione.
Il quarto comando usa il Get-Transaction
cmdlet per ottenere la transazione attiva. Si noti che lo stato è Active e il numero di sottoscrittori è 1.
Il quinto comando usa di nuovo il Start-Transaction
comando . In genere, l'avvio di una transazione mentre è in corso un'altra transazione si verifica quando uno script utilizzato dalla transazione principale include la propria transazione completa. Questo esempio viene eseguito in modo interattivo in modo da poterlo esaminare in fasi. Quando si esegue un comando mentre è in corso un'altra Start-Transaction
transazione, i comandi aggiungono la transazione esistente come nuovo sottoscrittore e il conteggio dei sottoscrittori viene incrementato.
Il sesto comando usa il Get-Transaction
cmdlet per ottenere la transazione attiva. Si noti che ora il numero di sottoscrittori è 2.
Il settimo comando usa Undo-Transaction
per eseguire il rollback della transazione. Questo comando non restituisce alcun oggetto.
Il comando finale è un Get-Transaction
comando che ottiene l'oggetto attivo o, in questo caso, l'ultima transazione attiva. I risultati illustrano che viene eseguito il rollback della transazione e che il numero di sottoscrittori è 0, mostrando che è stato eseguito il rollback della transazione per tutti i sottoscrittori.
Parametri
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None
Non è possibile inviare input tramite pipe a questo cmdlet.
Output
None
Questo cmdlet non restituisce alcun output.
Note
Non è possibile eseguire il rollback di una transazione di cui è stato eseguito il commit.
Non è possibile eseguire il rollback di transazioni diverse da quella attiva. Per eseguire il rollback di una transazione indipendente diversa, occorre prima eseguire il commit o il rollback della transazione attiva.
Il rollback della transazione termina la transazione. Per usare di nuovo una transazione, è necessario avviarne una nuova.