Undo-Transaction
回滚活动事务。
语法
Undo-Transaction
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
Undo-Transaction
cmdlet 回滚活动事务。 回滚事务时,将丢弃事务中的命令所做的更改,并将数据还原到其原始窗体。
如果事务包含多个订阅者,Undo-Transaction
命令将回滚所有订阅服务器的整个事务。
默认情况下,如果事务中的任何命令生成错误,则事务会自动回滚。 但是,可以使用不同的回滚首选项启动事务,并且可以使用此 cmdlet 随时回滚活动事务。
Undo-Transaction
cmdlet 是一组支持 Windows PowerShell 中的事务功能的 cmdlet 之一。 有关详细信息,请参阅 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 之前,提示你进行确认。
类型: | SwitchParameter |
别名: | cf |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 cmdlet 未运行。
类型: | SwitchParameter |
别名: | wi |
Position: | Named |
默认值: | False |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
None
不能通过管道将输入传递给此 cmdlet。
输出
None
此 cmdlet 不返回任何输出。
备注
无法回滚已提交的事务。
不能回滚活动事务以外的任何事务。 若要回滚其他独立事务,必须先提交或回滚活动事务。
回滚事务将结束事务。 若要再次使用事务,必须启动一个新事务。