Get-Transaction
Published: February 29, 2012
Updated: August 23, 2012
Applies To: Windows PowerShell 2.0, Windows PowerShell 3.0
Get-Transaction
Syntax
Detailed Description
The Get-Transaction cmdlet gets an object that represents the current transaction in the session.
This cmdlet never returns more than one object, because only one transaction is active at a time. If you start one or more independent transactions (by using the Independent parameter of Start-Transaction), the most recently started transaction is active, and that is the transaction that Get-Transaction returns.
When all active transactions have either been rolled back or committed, Get-Transaction shows the transaction that was most recently active in the session.
The Get-Transaction cmdlet is one of a set of cmdlets that support the transactions feature in Windows PowerShell. For more information, see about_Transactions.
Parameters
<CommonParameters>
This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see about_CommonParameters (http://go.microsoft.com/fwlink/p/?LinkID=113216).
Inputs
The input type is the type of the objects that you can pipe to the cmdlet.
-
None
You cannot pipe objects to this cmdlet.
Outputs
The output type is the type of the objects that the cmdlet emits.
-
System.Management.Automation.PSTransaction
Get-Transaction returns an object that represents the current transaction.
Examples
-------------------------- EXAMPLE 1 --------------------------
This command uses the Get-Transaction cmdlet to get the current transaction.
PS C:\> start-transactionPS C:\>get-transactionRollbackPreference SubscriberCount Status------------------ --------------- ------Error 1 Active
-------------------------- EXAMPLE 2 --------------------------
This command uses the Get-Member cmdlet to show the properties and methods of the transaction object.
PS C:\> get-transaction | get-memberName 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;}
-------------------------- EXAMPLE 3 --------------------------
This command shows the property values of a transaction object for a transaction that has been rolled back.
PS C:\> cd hklm:\softwareHKLM:\SOFTWARE> Start-TransactionHKLM:\SOFTWARE> New-Item MyCompany -UseTransactionHKLM:\SOFTWARE> Undo-TransactionHKLM:\SOFTWARE> Get-TransactionRollbackPreference SubscriberCount Status------------------ --------------- ----------Error 0 RolledBack
-------------------------- EXAMPLE 4 --------------------------
This command shows the property values of a transaction object for a transaction that has been committed.
PS C:\> cd hklm:\softwareHKLM:\SOFTWARE> Start-TransactionHKLM:\SOFTWARE> New-Item MyCompany -UseTransactionHKLM:\SOFTWARE> Complete-TransactionHKLM:\SOFTWARE> Get-TransactionRollbackPreference SubscriberCount Status------------------ --------------- ---------Error 1 Committed
-------------------------- EXAMPLE 5 --------------------------
This example shows the effect on the transaction object of starting a transaction while another transaction is in progress. Typically, this happens when a script that runs a transaction includes a function or calls a script that contains another complete transaction.
Unless the second Start-Transaction command includes the Independent parameter, Start-Transaction does not create a new transaction. Instead, it adds a second subscriber to the original transaction.
The first Start-Transaction command starts the transaction. A New-Item command with the UseTransaction parameter is part of the transaction.
A second Start-Transaction command adds a subscriber to the transaction. The next New-Item command is also part of the transaction.
The first Get-Transaction command shows the multi-subscriber transaction. Notice that the subscriber count is 2.
The first Complete-Transaction command does not commit the transaction, but it reduces the subscriber count to 1.
The second Complete-Transaction command commits the transaction.
PS C:\> cd hklm:\softwareHKLM:\SOFTWARE> Start-TransactionHKLM:\SOFTWARE> New-Item MyCompany -UseTransactionHKLM:\SOFTWARE> Start-TransactionHKLM:\SOFTWARE> New-Item MyCompany2 -UseTransactionHKLM:\SOFTWARE> Get-TransactionRollbackPreference SubscriberCount Status------------------ --------------- ------Error 2 ActiveHKLM:\SOFTWARE> Complete-TransactionHKLM:\SOFTWARE> Get-TransactionRollbackPreference SubscriberCount Status------------------ --------------- ------Error 1 ActiveHKLM:\SOFTWARE> Complete-TransactionHKLM:\SOFTWARE> Get-TransactionRollbackPreference SubscriberCount Status------------------ --------------- ---------Error 1 Committed
-------------------------- EXAMPLE 6 --------------------------
This example shows the effect on the transaction object of starting an independent transaction while another transaction is in progress.
The first Start-Transaction command starts the transaction. A New-Item command with the UseTransaction parameter is part of the transaction.
A second Start-Transaction command adds a subscriber to the transaction. The next New-Item command is also part of the transaction.
The first Get-Transaction command shows the multi-subscriber transaction. Note that the subscriber count is 2.
The Complete-Transaction command reduces the subscriber count to 1, but it does not commit the transaction.
The second Complete-Transaction command commits the transaction.
PS C:\> HKLM:\SOFTWARE> Start-TransactionHKLM:\SOFTWARE> Get-TransactionRollbackPreference SubscriberCount IsRolledBack IsCommitted------------------ --------------- ------------ -----------Error 1 False FalseHKLM:\SOFTWARE> Start-Transaction -IndependentHKLM:\SOFTWARE> Get-TransactionRollbackPreference SubscriberCount IsRolledBack IsCommitted------------------ --------------- ------------ -----------Error 1 False FalseHKLM:\SOFTWARE> Complete-TransactionHKLM:\SOFTWARE> Get-TransactionHKLM:\SOFTWARE> Complete-TransactionHKLM:\SOFTWARE> Get-Transaction
Related topics