共用方式為


Get-Transaction

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

語法

Get-Transaction []

Description

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

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

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

此 Cmdlet 是一組 Cmdlet,可支援 Windows PowerShell 中的交易功能。 如需詳細資訊,請參閱 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 命令包含 Independent 參數,否則 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。

輸出

PSTransaction

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