Udostępnij za pośrednictwem


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.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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ę.