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 不會傳回任何輸出。
備註
您無法回復已認可的交易。
您無法復原使用中交易以外的任何交易。 若要復原不同的獨立交易,您必須先認可或回復使用中交易。
回復交易結束交易。 若要再次使用交易,您必須啟動新的交易。