Undo-Transaction
回滚活动事务。
语法
Undo-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
撤消事务 cmdlet 回滚活动事务。 回滚事务时,将放弃事务中命令所做的更改,并将数据还原到其原始形式。
如果事务包含多个订阅服务器,则 撤消事务 命令将回滚所有订阅服务器的整个事务。
默认情况下,如果事务中的任何命令发生错误,事务都会自动回滚。 但是,事务可以通过使用不同的回滚首选项来启动,并且可以随时使用此 cmdlet 回滚活动事务。
撤消事务 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 获取活动事务。 你会看到状态为 Active,订阅者计数为 1。
第五条命令同样使用 Start-Transaction 命令。 通常,当main事务使用的脚本包含其自己的完整事务时,将启动另一个事务。 此示例以交互方式执行,以便可以分阶段检查它。 当你在另一个事务正在进行时运行 Start-Transaction 命令时,命令会将现有事务作为新订阅服务器加入,订阅者计数会递增。
第六个命令使用 Get-Transaction cmdlet 获取活动事务。 你会看到此时订阅者计数为 2。
第七个命令使用 撤消事务 回滚事务。 此命令不返回任何对象。
最后一个命令是获取活动事务的 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 不返回任何输出。
备注
不能回滚已提交的事务。
不能回滚活动事务之外的任何事务。 若要回滚其他独立事务,则必须先提交或回滚活动事务。
回滚事务将会终止该事务。 若要再次使用事务,则必须启动新事务。