Setzt die aktive Transaktion zurück.

Syntax

Undo-Transaction [-Bestätigung] [-WhatIf] [<CommonParameters>]

Beschreibung

Das Cmdlet "Undo-Transaction" setzt die aktive Transaktion zurück. Wenn Sie eine Transaktion zurücksetzen, werden die von den Befehlen in der Transaktion vorgenommenen Änderungen verworfen, und die Daten werden in ihrer ursprünglichen Form wiederhergestellt.

Wenn die Transaktion mehrere Abonnenten umfasst, setzt der Befehl "Undo-Transaction" die gesamte Transaktion für alle Abonnenten zurück.

Standardmäßig werden Transaktionen automatisch zurückgesetzt, wenn ein Befehl in der Transaktion einen Fehler generiert. Transaktionen können jedoch mit einer anderen Einstellung für den Rollback gestartet werden, und Sie können mit diesem Cmdlet jederzeit einen Rollback der aktiven Transaktion ausführen.

Das Cmdlet "Undo-Transaction" gehört zu einem Satz von Cmdlets, die das Transaktionsfeature in Windows PowerShell unterstützen. Weitere Informationen finden Sie unter "about_Transactions".

Parameter

-Bestätigung

Fordert Sie vor der Ausführung des Befehls zur Bestätigung auf.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-WhatIf

Beschreibt die Auswirkungen einer Ausführung des Befehls, ohne den Befehl tatsächlich auszuführen.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

None

Eingaben können nicht über die Pipeline an dieses Cmdlet übergeben werden.

Ausgaben

None

Dieses Cmdlet gibt keine Ausgabe zurück.

Hinweise

Sie können keine Transaktion zurücksetzen, für die ein Commit ausgeführt wurde.

Sie können keine andere Transaktion als die aktive Transaktion zurücksetzen. Zum Zurücksetzen einer anderen, unabhängigen Transaktion müssen Sie zuerst einen Commit für die aktive Transaktion ausführen oder diese zurücksetzen.

Das Zurücksetzen der Transaktion beendet diese. Wenn Sie eine Transaktion wiederverwenden möchten, müssen Sie eine neue Transaktion starten.

Beispiel 1

C:\PS>undo-transaction

Beschreibung
-----------
Mit diesem Befehl wird die aktuelle (aktive) Transaktion zurückgesetzt.






Beispiel 2

C:\PS>cd hkcu:\software

PS HKCU:\Software> start-transaction
PS HKCU:\Software> new-item MyCompany -usetransaction
PS HKCU:\Software> undo-transaction

Beschreibung
-----------
Dieser Befehl startet eine Transaktion und setzt sie dann zurück. Es werden daher keine Änderungen an der Registrierung vorgenommen.






Beispiel 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

Beschreibung
-----------
In diesem Beispiel wird veranschaulicht, dass die gesamte Transaktion für alle Abonnenten zurückgesetzt wird, wenn ein Abonnent die Transaktion zurücksetzt.

Mit dem ersten Befehl wird der Speicherort des Registrierungsschlüssels "HKCU:\Software" geändert. 

Der zweite Befehl startet eine Transaktion. 

Der dritte Befehl erstellt mit dem Cmdlet "New-Item" einen neuen Registrierungsschlüssel. Der Befehl schließt die Änderung mit dem UseTransaction-Parameter in die Transaktion ein.

Der vierte Befehl ruft mit dem Cmdlet "Get-Transaction" die aktive Transaktion ab. Beachten Sie, dass der Status "Aktiv" ist und die Anzahl der Abonnenten 1 lautet.

Der fünfte Befehl verwendet wieder den Befehl "Start-Transaction". Normalerweise 
tritt das Starten einer Transaktion, während eine andere Transaktion ausgeführt wird, auf, wenn ein von der Haupttransaktion verwendetes Skript eine eigene vollständige Transaktion enthält. (Dieses Beispiel ist interaktiv, damit Sie es schrittweise betrachten können.)

Wenn Sie den Befehl "Start-Transaction" eingeben, während eine andere Transaktion ausgeführt wird, werden die Befehle der vorhandenen Transaktion als neue "Abonnenten" hinzugefügt, und die Abonnentenanzahl wird inkrementiert.

Der sechste Befehl ruft mit dem Cmdlet "Get-Transaction" die aktive Transaktion ab. Beachten Sie, dass die Abonnentenanzahl nun den Wert 2 aufweist.
  
Der siebte Befehl setzt die Transaktion mit dem Cmdlet "Undo-Transaction" zurück. Dieser Befehl gibt keine Objekte zurück.

Bei dem letzten Befehl handelt es sich um den Befehl "Get-Transaction", der die aktive (bzw. in diesem Fall die zuletzt aktive) Transaktion abruft. Das Ergebnis zeigt, dass die Transaktion zurückgesetzt wurde und dass die Abonnentenanzahl den Wert "0" aufweist. Dies gibt an, dass die Transaktion für alle Abonnenten zurückgesetzt wurde.






Siehe auch




Inhaltsverzeichnis