Get-Transaction
获取当前(活动)事务。
语法
Get-Transaction []
说明
Get-Transaction cmdlet 获取表示会话中当前事务的对象。
此 cmdlet 永远不会返回多个对象,因为一次只有一个事务处于活动状态。 如果启动一个或多个独立事务(通过使用 Start-Transaction的独立参数),则最近启动的事务处于活动状态,即 Get-Transaction 返回的事务。
回滚或提交所有活动事务后,此 cmdlet 会显示会话中最近处于活动状态的事务。
此 cmdlet 是一组支持 Windows PowerShell 中的事务功能的 cmdlet 之一。 有关详细信息,请参阅about_Transactions。
示例
示例 1:获取当前事务
PS C:\> Start-Transaction
PS C:\> Get-Transaction
RollbackPreference SubscriberCount Status
------------------ --------------- ------
Error 1 Active
此命令使用 Get-Transaction cmdlet 获取当前事务。
示例 2:显示事务对象的属性和方法
PS C:\> 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:显示回滚事务的属性值
PS C:\> 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:显示已提交的事务的属性值
PS C:\> 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:在另一个事务正在进行时启动事务
PS C:\> 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 命令包含 独立 参数,否则 Start-Transaction 不会创建新事务。 而是将第二个订阅服务器添加到原始事务。
第一个 Start-Transaction 命令启动事务。 具有 UseTransaction 参数的 New-Item 命令是事务的一部分。
第二个 Start-Transaction 命令将订阅服务器添加到事务。 下一个 New-Item 命令也是事务的一部分。
第一个 Get-Transaction 命令显示多订阅服务器事务。 请注意,订阅服务器计数为 2。
第一个 Complete-Transaction 命令不会提交事务,但它会将订阅服务器计数减少到 1。
第二个 Complete-Transaction 命令提交事务。
示例 6:启动独立事务,而另一个事务正在进行中
PS C:\>
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 命令提交事务。
输入
None
不能通过管道将对象传递给此 cmdlet。
输出
此 cmdlet 返回一个表示当前事务的对象。