获取当前(活动)事务。

语法

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 所返回对象的类型。

输入

None

不能通过管道将对象传递给此 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 命令提交该事务。






另请参阅




目录