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。
輸出
這個 Cmdlet 會傳回代表目前交易的物件。