Condividi tramite


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.