Freigeben über


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.