Sdílet prostřednictvím


Undo-Transaction

Vrátí zpět aktivní transakci.

Syntaxe

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

Description

Rutina Undo-Transaction vrátí aktivní transakci. Při vrácení transakce zpět změny provedené příkazy v transakci se zahodí a data se obnoví do původního formuláře.

Pokud transakce zahrnuje více odběratelů, příkaz Vrácení transakce zpět vrátí celou transakci pro všechny odběratele.

Ve výchozím nastavení se transakce vrátí zpět automaticky, pokud jakýkoli příkaz v transakci vygeneruje chybu. Transakce je však možné spustit pomocí jiné předvolby vrácení zpět a tuto rutinu můžete kdykoli vrátit zpět aktivní transakce.

Rutina Undo-Transaction je jednou ze sady rutin, které podporují funkci transakcí ve Windows PowerShellu. Další informace najdete v tématu about_Transactions.

Příklady

Příklad 1: Vrácení aktuální transakce zpět

PS C:\> Undo-Transaction

Tento příkaz vrátí zpět aktuální aktivní transakce.

Příklad 2: Zahájení a vrácení transakce zpět

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

Tento příklad spustí transakci a pak ji vrátí zpět. V důsledku toho se v registru neprovedou žádné změny.

Příklad 3: Vrácení transakce pro všechny odběratele

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

Tento příklad ukazuje, že když každý odběratel vrátí transakci zpět, celá transakce se vrátí zpět pro všechny odběratele.

První příkaz změní umístění na klíč registru HKCU:\Software.

Druhý příkaz spustí transakci.

Třetí příkaz používá rutinu New-Item k vytvoření nového klíče registru. Příkaz používá UseTransaction parametr zahrnout změnu do transakce.

Čtvrtý příkaz používá rutinu Get-Transaction k získání aktivní transakce. Všimněte si, že stav je Aktivní a počet odběratelů je 1.

Pátý příkaz znovu použije příkaz Start-Transaction. Obvykle, spuštění transakce zatímco další transakce probíhá v případě, že skript, který je používán hlavní transakcí zahrnuje vlastní úplnou transakci. Tento příklad se provádí interaktivně, abyste ho mohli prozkoumat ve fázích. Když spustíte příkaz Start-Transaction, zatímco probíhá jiná transakce, příkazy připojí existující transakci jako nového odběratele a počet odběratelů se zvýší.

Šestý příkaz používá rutinu Get-Transaction k získání aktivní transakce. Všimněte si, že počet odběratelů je teď 2.

Sedmý příkaz používá Vrácení transakce zpět zpět transakce. Tento příkaz nevrací žádné objekty.

Posledním příkazem je příkaz Get-Transaction, který získá aktivní nebo v tomto případě poslední aktivní transakce. Výsledky ukazují, že transakce je vrácena zpět a že počet odběratelů je 0, což ukazuje, že transakce byla vrácena zpět pro všechny odběratele.

Parametry

-Confirm

Před spuštěním rutiny vás vyzve k potvrzení.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-WhatIf

Ukazuje, co se stane, když se rutina spustí. Rutina se nespustí.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Default value:False
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

None

Vstup do této rutiny nelze převést.

Výstupy

None

Tato rutina nevrací žádný výstup.

Poznámky

  • Transakce, která byla potvrzena, nelze vrátit zpět.

    Nelze vrátit zpět žádnou transakci jinou než aktivní transakci. Chcete-li vrátit zpět jinou nezávislou transakci, musíte nejprve potvrdit nebo vrátit zpět aktivní transakci.

    Vrácení transakce zpět končí transakce. Chcete-li znovu použít transakci, musíte začít novou transakci.