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 obsahuje více odběratelů, Undo-Transaction příkaz vrátí zpět celou transakci pro všechny předplatitele.

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.

Tato 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

Undo-Transaction

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

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

Set-Location hkcu:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
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

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

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 HKCU:\Software klíč registru.

Druhý příkaz spustí transakci.

Třetí příkaz pomocí rutiny New-Item vytvoří nový klíč registru. Příkaz používá UseTransaction parametr zahrnout změnu v transakci.

Č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 Start-Transaction příkaz. 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 Start-Transaction příkaz, 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á Undo-Transaction k vrácení transakce zpět. Tento příkaz nevrací žádné objekty.

Poslední příkaz je Get-Transaction příkaz, 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 zobrazí výzvu 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

Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.

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.