Freigeben über


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.