Get-Transaction

取得目前 (使用中) 交易。

Syntax

Get-Transaction []

Description

Get-Transaction Cmdlet 會取得 物件,代表會話中的目前交易。

此 Cmdlet 絕不會傳回一個以上的物件,因為一次只有一個交易作用中。 如果您啟動一或多個獨立交易(使用 Start-Transaction 的 Independent 參數),則最近啟動的交易為使用中,也就是傳回的交易 Get-Transaction

當所有作用中交易都已回復或認可時,此 Cmdlet 會顯示會話中最近作用中的交易。

此 Cmdlet 是一組 Cmdlet,可支援 Windows PowerShell 中的交易功能。 如需詳細資訊,請參閱 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 命令會啟動交易。 New-Item具有UseTransaction 參數的命令是交易的一部分。

第二 Start-Transaction 個命令會將訂閱者新增至交易。 下一個 New-Item 命令也是交易的一部分。

第一個 Get-Transaction 命令會顯示多訂閱者交易。 請注意,訂閱者計數為 2。

命令 Complete-Transaction 會將訂閱者計數縮減為 1,但不會認可交易。

第二個 Complete-Transaction 命令會認可交易。

輸入

None

您無法使用管線將物件傳送至此 Cmdlet。

輸出

PSTransaction

這個 Cmdlet 會傳回代表目前交易的物件。