Undo-Transaction
回滚活动事务。
语法
Undo-Transaction [-Confirm] [-WhatIf] [<CommonParameters>]
说明
Undo-Transaction cmdlet 回滚活动事务。回滚事务时,由事务中的命令所做的更改将被丢弃,数据将还原到其原始形式。
如果事务包含多个订阅者,则 Undo-Transaction 命令将为所有订阅者回滚整个事务。
默认情况下,如果事务中的任何命令发生错误,事务都会自动回滚。但是,可以使用不同的回滚首选项启动事务,并且您可以使用此 cmdlet 随时回滚活动事务。
Undo-Transaction cmdlet 是 Windows PowerShell 中支持事务功能的一组 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 获取活动事务您会看到状态为 Active,订阅者计数为 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