Undo-Transaction
Cofa aktywną transakcję.
Składnia
Undo-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Opis
Polecenie Undo-Transaction
cmdlet 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, Undo-Transaction
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 Undo-Transaction
cmdlet jest jednym z zestawów poleceń cmdlet, które obsługują funkcję transakcji w programie Windows PowerShell. Aby uzyskać więcej informacji, zobacz about_Transactions.
Przykłady
Przykład 1. Wycofywanie bieżącej transakcji
Undo-Transaction
To polecenie powoduje wycofanie bieżącej, aktywnej transakcji.
Przykład 2. Uruchamianie i wycofywanie transakcji
Set-Location hkcu:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
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
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
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 HKCU:\Software
klucz rejestru.
Drugie polecenie uruchamia transakcję.
Trzecie polecenie używa New-Item
polecenia cmdlet do utworzenia nowego klucza rejestru. Polecenie używa parametru UseTransaction , aby uwzględnić zmianę w transakcji.
Czwarte polecenie używa Get-Transaction
polecenia cmdlet do pobrania aktywnej transakcji. Zwróć uwagę, że stan to Aktywna, a liczba subskrybentów to 1.
Piąte polecenie ponownie używa Start-Transaction
polecenia . 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 Start-Transaction
polecenia podczas wykonywania innej transakcji polecenia dołączają istniejącą transakcję jako nowego subskrybenta, a liczba subskrybentów jest zwiększana.
Szóste polecenie używa Get-Transaction
polecenia cmdlet do pobrania aktywnej transakcji. Zwróć uwagę, że liczba subskrybentów wynosi teraz 2.
Siódme polecenie używa Undo-Transaction
polecenia, aby wycofać transakcję. To polecenie nie zwraca żadnych obiektów.
Ostatnie polecenie to 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
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
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ę.