Get-Transaction
获取当前(活动)事务。
语法
Get-Transaction [<CommonParameters>]
说明
Get-Transaction cmdlet 获取表示会话中的当前事务的对象。
此 cmdlet 从不返回多个对象,原因是同一时间只有一个事务处于活动状态。如果启动一个或多个独立事务(使用 Start-Transaction 的 Independent 参数),则最近启动的事务将处于活动状态,并且该事务是 Get-Transaction 返回的事务。
回滚或提交所有活动事务后,Get-Transaction 将显示会话中最近活动的事务。
Get-Transaction cmdlet 是 Windows PowerShell 中支持事务功能的一组 cmdlet 之一。有关详细信息,请参阅 about_Transactions。
参数
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
无 不能通过管道将对象传递给此 cmdlet。 |
输出 |
System.Management.Automation.PSTransaction Get-Transaction 返回一个表示当前事务的对象。 |
示例 1
C:\PS>start-transaction
C:\PS> get-transaction
RollbackPreference SubscriberCount Status
------------------ --------------- ------
Error 1 Active
说明
-----------
此命令使用 Get-Transaction cmdlet 来获取当前事务。
示例 2
C:\PS>get-transaction | get-member
Name MemberType Definition
---- ---------- ----------
Dispose Method System.Void Dispose(), System.Void Dispose(Boolean disposing)
Equals Method System.Boolean Equals(Object obj)
GetHashCode Method System.Int32 GetHashCode()
GetType Method System.Type GetType()
ToString Method System.String ToString()
IsCommitted Property System.Boolean IsCommitted {get;}
IsRolledBack Property System.Boolean IsRolledBack {get;}
RollbackPreference Property System.Management.Automation.RollbackSeverity RollbackPreference {get;}
SubscriberCount Property System.Int32 SubscriberCount {get;set;}
说明
-----------
此命令使用 Get-Member cmdlet 来显示事务对象的属性和方法。
示例 3
C:\PS>cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Undo-Transaction
HKLM:\SOFTWARE> Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- ----------
Error 0 RolledBack
说明
-----------
此命令显示已回滚事务的事务对象属性值。
示例 4
C:\PS>cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- ---------
Error 1 Committed
说明
-----------
此命令显示已提交事务的事务对象属性值。
示例 5
C:\PS>cd hklm:\software
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction
HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> New-Item MyCompany2 -UseTransaction
HKLM:\SOFTWARE> Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- ------
Error 2 Active
HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- ------
Error 1 Active
HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- ---------
Error 1 Committed
说明
-----------
此示例演示当一个事务正在运行时,启动另一个事务对事务对象的影响。通常,当运行事务的脚本包括函数或调用包含其他完整事务的脚本时,会发生这种情况。
除非第二个 Start-Transaction 命令包括 Independent 参数,否则 Start-Transaction 不会创建新事务。它会将第二个订阅者添加到原始事务中。
第一个 Start-Transaction 命令启动事务。带有 UseTransaction 参数的 New-Item 命令是该事务的一部分。
第二个 Start-Transaction 命令向该事务中添加订阅者。下一个 New-Item 命令也是该事务的一部分。
第一个 Get-Transaction 命令显示多订阅者事务。请注意,订阅者计数为 2。
第一个 Complete-Transaction 命令不会提交事务,但它会将订阅者计数减少到 1。
第二个 Complete-Transaction 命令提交该事务。
示例 6
C:\PS>HKLM:\SOFTWARE> Start-Transaction
HKLM:\SOFTWARE> Get-Transaction
RollbackPreference SubscriberCount IsRolledBack IsCommitted
------------------ --------------- ------------ -----------
Error 1 False False
HKLM:\SOFTWARE> Start-Transaction -Independent
HKLM:\SOFTWARE> Get-Transaction
RollbackPreference SubscriberCount IsRolledBack IsCommitted
------------------ --------------- ------------ -----------
Error 1 False False
HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction
HKLM:\SOFTWARE> Complete-Transaction
HKLM:\SOFTWARE> Get-Transaction
说明
-----------
此示例演示当一个事务正在运行时,启动另一个独立事务对事务对象的影响。
第一个 Start-Transaction 命令启动事务。带有 UseTransaction 参数的 New-Item 命令是该事务的一部分。
第二个 Start-Transaction 命令向该事务中添加订阅者。下一个 New-Item 命令也是该事务的一部分。
第一个 Get-Transaction 命令显示多订阅者事务。请注意,订阅者计数为 2。
Complete-Transaction 命令将订阅者计数减少到 1,但不提交该事务。
第二个 Complete-Transaction 命令提交该事务。
另请参阅
概念
about_Transactions
about_providers
Start-Transaction
Complete-Transaction
Undo-Transaction
Use-Transaction