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




Argomenti della Guida