共用方式為


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