Undo-Transaction
Rollback der aktiven Transaktion.
Syntax
Undo-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Mit dem Cmdlet Undo-Transaction
wird die aktive Transaktion zurückgesetzt. 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, führt ein Undo-Transaction
Befehl einen Rollback der gesamten Transaktion für alle Abonnenten durch.
Transaktionen werden standardmäßig automatisch zurückgesetzt, wenn ein Beliebiger 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 cmdlet Undo-Transaction
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. Daher werden 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 registrierungsschlüssel HKCU:\Software
.
Der zweite Befehl startet eine Transaktion.
Der dritte Befehl verwendet das Cmdlet New-Item
, 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 Cmdlet Get-Transaction
, um die aktive Transaktion abzurufen. Beachten Sie, dass der Status "Aktiv" ist und die Anzahl der Abonnenten 1 ist.
Der fünfte Befehl verwendet den Befehl Start-Transaction
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 Start-Transaction
Befehl ausführen, während eine 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 Cmdlet Get-Transaction
, um die aktive Transaktion abzurufen. Beachten Sie, dass die Anzahl der Abonnenten jetzt 2 ist.
Der siebte Befehl verwendet Undo-Transaction
zum Zurücksetzen 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. Die Ergebnisse zeigen, dass die Transaktion zurückgesetzt wird und dass die Anzahl der Abonnenten 0 ist und zeigt, dass die Transaktion für alle Abonnenten zurückgesetzt wurde.
Parameter
-Confirm
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passiert, 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
Sie können keine Eingabe an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.
Hinweise
Sie können kein Rollback für eine Transaktion ausführen, die zugesichert wurde.
Sie können keine andere Transaktion als die aktive Transaktion zurücksetzen. Um ein Rollback einer anderen unabhängigen Transaktion durchzuführen, müssen Sie die aktive Transaktion zuerst übernehmen oder zurücksetzen.
Das Rollback der Transaktion beendet die Transaktion. Um eine Transaktion erneut zu verwenden, müssen Sie eine neue Transaktion starten.