Undo-Transaction

回復使用中交易。

Syntax

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

Description

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

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

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

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

範例

範例 1:回復目前的交易

Undo-Transaction

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

範例 2:啟動和回復交易

Set-Location hkcu:\software
Start-Transaction
New-Item -Path "ContosoCompany" -UseTransaction
Undo-Transaction

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

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

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

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

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

第二個命令會啟動交易。

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

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

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

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

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

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

參數

-Confirm

執行 Cmdlet 之前先提示您確認。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

輸入

None

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

輸出

None

此 Cmdlet 不會傳回任何輸出。

備註

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

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

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