共用方式為


Undo-Transaction

回復使用中交易。

語法

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

Description

復原交易 Cmdlet 會回復使用中交易。 當您回復交易時,會捨棄交易中命令所做的變更,並將數據還原至其原始格式。

如果交易包含多個訂閱者,Undo-Transaction 命令會復原所有訂閱者的整個交易。

根據預設,如果交易中的任何命令產生錯誤,交易就會自動回復。 不過,交易可以使用不同的回復喜好設定來啟動,而且您可以使用此 Cmdlet 隨時回復使用中交易。

Undo-Transaction Cmdlet 是一組支援 Windows PowerShell 中交易功能的 Cmdlet。 如需詳細資訊,請參閱 about_Transactions。

範例

範例 1:回復目前的交易

PS C:\> Undo-Transaction

此命令會復原目前的作用中交易。

範例 2:啟動和回復交易

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

此範例會啟動交易,然後將它回復。 因此,不會對登錄進行任何變更。

範例 3:復原所有訂閱者的交易

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

這個範例示範當任何訂閱者回復交易時,所有訂閱者都會回復整個交易。

第一個命令會將位置變更為 HKCU:\Software 登錄機碼。

第二個命令會啟動交易。

第三個命令會使用 New-Item Cmdlet 來建立新的登錄機碼。 此命令會使用 UseTransaction 參數,在交易中包含變更。

第四個命令會使用 Get-Transaction Cmdlet 來取得使用中的交易。 請注意,狀態為 [作用中],且訂閱者計數為 1。

第五個命令會再次使用 Start-Transaction 命令。 一般而言,當主要交易使用的腳本包含自己的完整交易時,就會在另一筆交易進行中啟動交易。 此範例會以互動方式執行,讓您可以分階段檢查它。 當您在另一個交易進行時執行 Start-Transaction 命令時,命令會將現有的交易聯結為新的訂閱者,且訂閱者計數會遞增。

第六個命令會使用 Get-Transaction Cmdlet 來取得使用中的交易。 請注意,訂閱者計數現在是 2。

第七個命令會使用 復原交易 來復原交易。 此命令不會傳回任何物件。

最後一個命令是 Get-Transaction 命令,這個命令會取得使用中,或在此案例中為最近使用中的交易。 結果會顯示交易已回復,且訂閱者計數為 0,顯示所有訂閱者已回復交易。

參數

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

類型:SwitchParameter
別名:cf
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。

類型:SwitchParameter
別名:wi
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

None

您無法使用管線將輸入傳送至此 Cmdlet。

輸出

None

此 Cmdlet 不會傳回任何輸出。

備註

  • 您無法回復已認可的交易。

    您無法復原使用中交易以外的任何交易。 若要復原不同的獨立交易,您必須先認可或回復使用中交易。

    回復交易結束交易。 若要再次使用交易,您必須啟動新的交易。