Undo-Transaction
復原現用交易。
語法
Undo-Transaction [-Confirm] [-WhatIf] [<CommonParameters>]
描述
Undo-Transaction Cmdlet 會復原現用交易。當您復原交易時,會捨棄交易中由命令進行的所有變更,且資料會還原到原始狀態。
如果要在交易包含多個訂閱者時認可交易,則 Undo-Transaction 命令會為所有訂閱者還原整個交易。
根據預設,如果任一交易中命令產生錯誤時,便會自動復原交易。不過,交易可以透過不同的復原偏好啟動,您可以隨時使用這個 Cmdlet 復原現用交易。
在支援 Windows PowerShell 交易功能的一組 Cmdlet 集中,Undo-Transaction Cmdlet 是其中一項。如需詳細資訊,請參閱 about_Transactions。
參數
-Confirm
在執行命令前先提示確認。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-WhatIf
說明執行命令時將會發生何種情況,但不會實際執行命令。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
無 您無法經由管道將輸入輸出至這個 Cmdlet。 |
輸出 |
無 這個 Cmdlet 不會傳回任何輸出。 |
附註
您無法復原已經認可的交易。
除了現用交易外,您無法復原任何其他交易。您必須先認可或復原現用交易,才能夠復原其他且獨立的交易。
復原交易便會結束交易,因此如果要再次使用交易,則必須啟動新交易。
範例 1
C:\PS>undo-transaction
描述
-----------
這個命令復原目前 (現用) 交易。
範例 2
C:\PS>cd hkcu:\software
PS HKCU:\Software> start-transaction
PS HKCU:\Software> new-item MyCompany -usetransaction
PS HKCU:\Software> undo-transaction
描述
-----------
這個命令會先啟動然後復原交易,所以不會對登錄進行任何變更。
範例 3
C:\PS>cd hkcu:\software
PS HKCU:\Software> start-transaction
PS HKCU:\Software> new-item MyCompany -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。
第七個命令使用 Undo-Transaction Cmdlet 復原交易。這個命令不會傳回任何物件。
最後一個命令為取得現用交易的 Get-Transaction 命令 (在這個案例中,現用交易為最近一次處於現用狀態的交易)。這些結果顯示交易已復原而且訂閱者計數為 0,這表示已經為所有訂閱者復原交易。
請參閱
概念
about_Transactions
about_Providers
Start-Transaction
Get-Transaction
Complete-Transaction
Use-Transaction