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