Esegue il rollback della transazione attiva.
Sintassi
Undo-Transaction [-Confirm] [-WhatIf] [<CommonParameters>]
Descrizione
Il cmdlet Undo-Transaction esegue il rollback della transazione attiva. Quando si esegue il rollback di una transazione, le modifiche apportate dai comandi nella transazione vengono ignorate e i dati vengono ripristinati nella forma originale.
Se la transazione include più sottoscrittori, un comando Undo-Transaction 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 possibile avviare le transazioni con una preferenza di rollback diversa ed è possibile utilizzare questo cmdlet per eseguire il rollback della transazione attiva in qualsiasi momento.
Il cmdlet Undo-Transaction fa parte di un set di cmdlet che supportano la funzionalità delle transazioni in Windows PowerShell. Per ulteriori informazioni, vedere about_Transactions.
Parametri
-Confirm
Chiede una conferma prima di eseguire il comando.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-WhatIf
Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
Nessuno Non è possibile reindirizzare l'input a questo cmdlet. |
Output |
Nessuno 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 diversa e indipendente, è necessario eseguire innanzitutto il commit o il rollback della transazione attiva.
Con il rollback la transazione viene terminata. Per utilizzare nuovamente una transazione, è necessario avviarne una nuova.
Esempio 1
C:\PS>undo-transaction Descrizione ----------- Questo comando esegue il rollback della transazione corrente (attiva).
Esempio 2
C:\PS>cd hkcu:\software PS HKCU:\Software> start-transaction PS HKCU:\Software> new-item MyCompany -usetransaction PS HKCU:\Software> undo-transaction Descrizione ----------- Questo comando avvia una transazione, quindi ne esegue il rollback. Di conseguenza, non viene apportata alcuna modifica al Registro di sistema.
Esempio 3
C:\PS>cd hkcu:\software PS HKCU:\Software> start-transaction PS HKCU:\Software> new-item MyCompany -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 Descrizione ----------- 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 la posizione nella chiave del Registro di sistema HKCU:\Software. Il secondo comando avvia una transazione. Il terzo comando utilizza il cmdlet New-Item per creare una nuova chiave del Registro di sistema. Viene utilizzato il parametro UseTransaction per includere la modifica nella transazione. Il quarto comando utilizza il cmdlet Get-Transaction per ottenere la transazione attiva. Si noti che lo stato è Active e il conteggio dei sottoscrittori è pari a 1. Il quinto comando utilizza nuovamente il comando Start-Transaction. 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 presentato in modo interattivo per consentirne l'analisi in fasi. Quando si immette un comando Start-Transaction mentre è in corso un'altra transazione, i comandi vengono aggiunti alla transazione esistente come un nuovo "sottoscrittore" e il conteggio dei sottoscrittori viene incrementato. Il sesto comando utilizza il cmdlet Get-Transaction per ottenere la transazione attiva. Si noti che il conteggio dei sottoscrittori è pari a 2. Il settimo comando utilizza il cmdlet Undo-Transaction per eseguire il rollback della transazione. Non viene restituito alcun oggetto. Il comando finale è un comando Get-Transaction che ottiene la transazione attiva o, in questo caso, l'ultima transazione attiva. I risultati evidenziano che viene eseguito il rollback della transazione e che il conteggio dei sottoscrittori è pari a 0, indicando che il rollback della transazione è stato eseguito per tutti i sottoscrittori.
Vedere anche