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