Udostępnij za pomocą


Undo-Transaction

Cofa aktywną transakcję.

Składnia

Default (domyślnie)

Undo-Transaction
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Opis

Polecenie cmdlet Undo-Transaction przywraca aktywną transakcję. Po wycofaniu transakcji zmiany wprowadzone przez polecenia w transakcji zostaną odrzucone, a dane zostaną przywrócone do oryginalnego formularza.

Jeśli transakcja obejmuje wielu subskrybentów, Cofnij transakcję polecenie wycofa całą transakcję dla wszystkich subskrybentów.

Domyślnie transakcje są automatycznie wycofywane, jeśli jakiekolwiek polecenie w transakcji generuje błąd. Jednak transakcje można uruchomić przy użyciu innej preferencji wycofywania i można użyć tego polecenia cmdlet, aby wycofać aktywną transakcję w dowolnym momencie.

Polecenie cmdlet Undo-Transaction jest jednym z zestawów poleceń cmdlet obsługujących funkcję transakcji w programie Windows PowerShell. Aby uzyskać więcej informacji, zobacz about_Transactions.

Przykłady

Przykład 1. Wycofywanie bieżącej transakcji

PS C:\> Undo-Transaction

To polecenie powoduje wycofanie bieżącej, aktywnej transakcji.

Przykład 2. Uruchamianie i wycofywanie transakcji

PS C:\> cd hkcu:\software
PS HKCU:\Software> Start-Transaction
PS HKCU:\Software> New-Item -Path "ContosoCompany" -UseTransaction
PS HKCU:\Software> Undo-Transaction

W tym przykładzie zostanie uruchomiona transakcja, a następnie wycofana. W związku z tym w rejestrze nie są wprowadzane żadne zmiany.

Przykład 3. Wycofywanie transakcji dla wszystkich subskrybentów

PS C:\> cd hkcu:\software
PS HKCU:\Software> Start-Transaction
PS HKCU:\Software> New-Item -Path "ContosoCompany" -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

W tym przykładzie pokazano, że gdy każdy subskrybent wycofa transakcję, cała transakcja zostanie wycofana dla wszystkich subskrybentów.

Pierwsze polecenie zmienia lokalizację na klucz rejestru HKCU:\Software.

Drugie polecenie uruchamia transakcję.

Trzecie polecenie używa polecenia cmdlet New-Item do utworzenia nowego klucza rejestru. Polecenie używa parametru UseTransaction, aby uwzględnić zmianę w transakcji.

Czwarte polecenie używa polecenia cmdlet Get-Transaction w celu pobrania aktywnej transakcji. Zwróć uwagę, że stan to Aktywna, a liczba subskrybentów to 1.

Piąte polecenie ponownie używa polecenia Start-Transaction. Zazwyczaj rozpoczynanie transakcji, gdy inna transakcja jest w toku, gdy skrypt używany przez główną transakcję obejmuje własną pełną transakcję. Ten przykład jest wykonywany interaktywnie, aby można było je sprawdzić na etapach. Po uruchomieniu polecenia start-transaction, podczas gdy inna transakcja jest w toku, polecenia dołączają istniejącą transakcję jako nowego subskrybenta i liczba subskrybentów jest zwiększana.

Szóste polecenie używa polecenia cmdlet Get-Transaction, aby uzyskać aktywną transakcję. Zwróć uwagę, że liczba subskrybentów wynosi teraz 2.

Siódme polecenie używa Cofnij transakcję, aby wycofać transakcję. To polecenie nie zwraca żadnych obiektów.

Ostatnim poleceniem jest get-transaction polecenie, które pobiera aktywne, lub w tym przypadku ostatnio aktywne transakcje. Wyniki pokazują, że transakcja została wycofana, a liczba subskrybentów wynosi 0, co pokazuje, że transakcja została wycofana dla wszystkich subskrybentów.

Parametry

-Confirm

Prosi o potwierdzenie przed uruchomieniem cmdletu.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:por

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie jest uruchomiony.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Wi

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

None

Nie można przekazać danych wejściowych potoku do tego polecenia cmdlet.

Dane wyjściowe

None

To polecenie cmdlet nie zwraca żadnych danych wyjściowych.

Uwagi

  • Nie można wycofać transakcji, która została zatwierdzona.

    Nie można wycofać żadnej transakcji innej niż aktywna transakcja. Aby wycofać inną, niezależną transakcję, musisz najpierw zatwierdzić lub wycofać aktywną transakcję.

    Wycofywanie transakcji kończy transakcję. Aby ponownie użyć transakcji, musisz uruchomić nową transakcję.