Share via


Get-Transaction

Obtiene la transacción actual (activa).

Syntax

Get-Transaction []

Description

El Get-Transaction cmdlet obtiene un objeto que representa la transacción actual en la sesión.

Este cmdlet no devuelve nunca más de un objeto, porque solo hay una transacción activa cada vez. Si inicia una o varias transacciones independientes (mediante el parámetro Independent de Start-Transaction), la transacción iniciada más recientemente está activa y es la transacción que Get-Transaction devuelve.

Cuando se han revertido o confirmado todas las transacciones activas, este cmdlet muestra la transacción que se ha activo más recientemente en la sesión.

Este cmdlet es uno de los conjuntos de cmdlets que admiten la característica de transacciones en Windows PowerShell. Para obtener más información, consulte about_Transactions.

Ejemplos

Ejemplo 1: Obtención de la transacción actual

Start-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ------
Error                1                 Active

Este comando usa el Get-Transaction cmdlet para obtener la transacción actual.

Ejemplo 2: Mostrar las propiedades y los métodos del objeto de transacción

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;}

Este comando usa el Get-Member cmdlet para mostrar las propiedades y los métodos del objeto de transacción.

Ejemplo 3: Mostrar los valores de propiedad de una transacción revierte

Set-Location hklm:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Undo-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ----------
Error                0                 RolledBack

Este comando muestra los valores de propiedad de un objeto de transacción correspondiente a una transacción que se ha revertido.

Ejemplo 4: Mostrar los valores de propiedad de una transacción confirmada

Set-Location hklm:\software
Start-Transaction
New-Item MyCompany -UseTransaction
Complete-Transaction
Get-Transaction

RollbackPreference   SubscriberCount   Status
------------------   ---------------   ---------
Error                1                 Committed

Este comando muestra los valores de propiedad de un objeto de transacción correspondiente a una transacción que se ha confirmado.

Ejemplo 5: Iniciar una transacción mientras hay otra en curso

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

En este ejemplo se muestra el efecto que se produce en el objeto de transacción al iniciar una transacción cuando hay otra transacción en curso. Normalmente, esto sucede cuando un script que ejecuta una transacción incluye una función o llama a un script que contiene otra transacción completa.

A menos que el segundo Start-Transaction comando incluya el parámetro Independent , Start-Transaction no crea una nueva transacción. sino que agrega un segundo suscriptor a la transacción original.

El primer Start-Transaction comando inicia la transacción. Un comando New-Item con el parámetro UseTransaction forma parte de la transacción.

Un segundo Start-Transaction comando agrega un suscriptor a la transacción. El siguiente New-Item comando también forma parte de la transacción.

El primer Get-Transaction comando muestra la transacción de varios suscriptores. Observe que el número de suscriptores es 2.

El primer comando Complete-Transaction no confirma la transacción, pero reduce el número de suscriptores a 1.

El segundo Complete-Transaction comando confirma la transacción.

Ejemplo 6: Iniciar una transacción independiente mientras hay otra en curso

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

En este ejemplo se muestra el efecto que se produce en el objeto de transacción al iniciar una transacción independiente cuando hay otra transacción en curso.

El primer Start-Transaction comando inicia la transacción. Un New-Item comando con el parámetro UseTransaction forma parte de la transacción.

Un segundo Start-Transaction comando agrega un suscriptor a la transacción. El siguiente New-Item comando también forma parte de la transacción.

El primer Get-Transaction comando muestra la transacción de varios suscriptores. Observe que el número de suscriptores es 2.

El Complete-Transaction comando reduce el número de suscriptores a 1, pero no confirma la transacción.

El segundo Complete-Transaction comando confirma la transacción.

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

PSTransaction

Este cmdlet devuelve un objeto que representa la transacción actual.