Undo-Transaction
Setzt die aktive Transaktion zurück.
Syntax
Undo-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Undo-Transaction
Cmdlet setzt die aktive Transaktion zurück. Wenn Sie eine Transaktion zurücksetzen, werden die Änderungen, die von den Befehlen in der Transaktion vorgenommen wurden, verworfen, und die Daten werden in ihrem ursprünglichen Formular wiederhergestellt.
Wenn die Transaktion mehrere Abonnenten enthält, setzt ein Undo-Transaction
Befehl 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 Rollbackeinstellung gestartet werden, und Sie können dieses Cmdlet verwenden, um die aktive Transaktion jederzeit rückgängig zu machen.
Das Undo-Transaction
Cmdlet ist einer der Cmdlets, die das Transaktionsfeature in Windows PowerShell unterstützen. Weitere Informationen finden Sie unter about_Transactions.
Beispiele
Beispiel 1: Zurücksetzen der aktuellen Transaktion
Undo-Transaction
Mit diesem Befehl wird die aktuelle, aktive Transaktion zurückgesetzt.
Beispiel 2: Starten und Zurücksetzen einer Transaktion
Set-Location hkcu:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
Undo-Transaction
In diesem Beispiel wird eine Transaktion gestartet und anschließend zurückgesetzt. Es werden daher keine Änderungen an der Registrierung vorgenommen.
Beispiel 3: Zurücksetzen einer Transaktion für alle Abonnenten
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 diesem Beispiel wird veranschaulicht, dass bei einem Rollback eines Abonnenten einer Transaktion die gesamte Transaktion für alle Abonnenten zurückgesetzt wird.
Der erste Befehl ändert den Speicherort in den HKCU:\Software
Registrierungsschlüssel.
Der zweite Befehl startet eine Transaktion.
Der dritte Befehl verwendet das New-Item
Cmdlet, um einen neuen Registrierungsschlüssel zu erstellen. Der Befehl verwendet den UseTransaction-Parameter , um die Änderung in die Transaktion einzuschließen.
Der vierte Befehl verwendet das Get-Transaction
Cmdlet, um die aktive Transaktion abzurufen. Beachten Sie, dass der Status %%amp;quot;Aktiv%%amp;quot; ist und die Anzahl der Abonnenten 1 lautet.
Der fünfte Befehl verwendet den Start-Transaction
Befehl erneut. In der Regel tritt das Starten einer Transaktion auf, während eine andere Transaktion ausgeführt wird, wenn ein Skript, das von der Haupttransaktion verwendet wird, seine eigene vollständige Transaktion enthält. Dieses Beispiel wird interaktiv ausgeführt, sodass Sie es in Phasen untersuchen können. Wenn Sie einen Befehl ausführen, während eine Start-Transaction
andere Transaktion ausgeführt wird, werden die Befehle der vorhandenen Transaktion als neuer Abonnent hinzugefügt, und die Anzahl der Abonnenten wird erhöht.
Der sechste Befehl verwendet das Get-Transaction
Cmdlet, um die aktive Transaktion abzurufen. Beachten Sie, dass die Abonnentenanzahl nun 2 lautet.
Der siebte Befehl verwendet Undo-Transaction
ein Rollback der Transaktion. Dieser Befehl gibt keine Objekte zurück.
Der letzte Befehl ist ein Get-Transaction
Befehl, der die aktive oder in diesem Fall die zuletzt aktive Transaktion abruft. Das Ergebnis zeigt, dass die Transaktion zurückgesetzt wurde und dass die Abonnentenanzahl den Wert %%amp;quot;0%%amp;quot; aufweist. Dies gibt an, dass die Transaktion für alle Abonnenten zurückgesetzt wurde.
Parameter
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Eingaben können nicht an dieses Cmdlet weitergereicht 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.