Undo-Transaction
Esegue il rollback della transazione attiva.
Sintassi
Default (Impostazione predefinita)
Undo-Transaction
[-WhatIf]
[-Confirm]
[<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 rimosse e i dati vengono ripristinati nel formato 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 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 cmdlet Undo-Transaction è un 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 imposta il percorso sulla chiave del Registro di sistema HKCU:\Software.
Il secondo comando avvia una transazione.
Il terzo comando usa il cmdlet New-Item 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 cmdlet Get-Transaction per ottenere la transazione attiva. Si noti che lo stato è Attivo e il numero di sottoscrittori è 1.
Il quinto comando usa di nuovo 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 eseguito in modo interattivo in modo da poterlo esaminare in fasi. Quando si esegue un comando Start-Transaction mentre è in corso un'altra transazione, i comandi vengono aggiunti alla transazione esistente come nuovo sottoscrittore e il numero di sottoscrittori viene incrementato.
Il sesto comando usa il cmdlet Get-Transaction per ottenere la transazione attiva. Si noti che il numero di sottoscrittori è ora 2.
Il settimo comando usa Undo-Transaction per eseguire il rollback della transazione. Questo comando non restituisce alcun oggetto.
Il comando finale è un comando Get-Transaction che ottiene l'oggetto attivo o, in questo caso, l'ultima transazione attiva. I risultati mostrano che viene eseguito il rollback della transazione e che il conteggio dei sottoscrittori è 0, che indica che è stato eseguito il rollback della transazione per tutti i sottoscrittori.
Parametri
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | cfr |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Wi |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
None
Non è possibile inviare tramite pipe l'input 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 alcuna transazione diversa dalla transazione attiva. Per eseguire il rollback di una transazione diversa indipendente, è necessario prima eseguire il commit o il rollback della transazione attiva.
Il rollback della transazione termina la transazione. Per usare di nuovo una transazione, è necessario avviare una nuova transazione.