Share via


Use-Transaction

Agrega el bloque de script a la transacción activa.

Syntax

Use-Transaction
   [-TransactedScript] <ScriptBlock>
   [-UseTransaction]
   [<CommonParameters>]

Description

El Use-Transaction cmdlet agrega un bloque de script a una transacción activa. Esto le permite realizar scripts de transacciones mediante objetos de Microsoft .NET Framework habilitados para transacciones. El bloque de script solo puede contener objetos de .NET Framework habilitados para transacciones, como instancias de la clase Microsoft.PowerShell.Commands.Management.TransactedString .

El parámetro UseTransaction , que es opcional para la mayoría de los cmdlets, es necesario cuando se usa este cmdlet.

Use-Transaction es un conjunto de cmdlets que admiten la característica de transacciones en Windows PowerShell. Para obtener más información, consulte about_Transactions.

Ejemplos

Ejemplo 1: Script mediante un objeto habilitado para transacciones

Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
$transactedString.ToString()

Hello

Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction

Hello, World

Complete-Transaction
$transactedString.ToString()

Hello, World

En este ejemplo se muestra cómo usar Use-Transaction para crear scripts en un objeto de .NET Framework habilitado para transacciones. En este caso, el objeto es un objeto TransactedString .

El primer comando usa el Start-Transaction cmdlet para iniciar una transacción.

El segundo comando usa el comando New-Object para crear un objeto TransactedString . Almacena el objeto en la $TransactedString variable .

Los comandos tercero y cuarto usan el método Append del objeto TransactedString para agregar texto al valor de $TransactedString. Un comando forma parte de la transacción. El otro comando no es .

El tercer comando usa el método Append de la cadena de transacción para agregar Hello al valor de $TransactedString. Dado que el comando no forma parte de la transacción, el cambio se aplica inmediatamente.

El cuarto comando usa Use-Transaction para agregar texto a la cadena de la transacción. El comando usa el método Append para agregar ", World" al valor de $TransactedString. El comando se incluye entre llaves ({}) para convertirlo en un bloque de script. El parámetro UseTransaction es necesario en este comando.

Los comandos quinto y sexto usan el método ToString del objeto TransactedString para mostrar el valor de TransactedString como una cadena. De nuevo, un comando forma parte de la transacción. La otra transacción no es .

El quinto comando usa el método ToString para mostrar el valor actual de la variable $TransactedString. Al no formar parte de la transacción, solo muestra el estado actual de la cadena.

El sexto comando usa Use-Transaction para ejecutar el mismo comando en la transacción. Dado que el comando forma parte de la transacción, muestra el valor actual de la cadena en la transacción, al igual que una vista previa de los cambios de transacción.

El séptimo comando usa el Complete-Transaction cmdlet para confirmar la transacción.

El comando final usa el método ToString para mostrar el valor resultante de la variable como una cadena.

Ejemplo 2: Revertir una transacción

Start-Transaction
$transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
$transactedString.Append("Hello")
Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
Undo-Transaction
$transactedString.ToString()

Hello

En este ejemplo se muestra el efecto de revertir una transacción que incluye Use-Transaction comandos. Al igual que con todos los comandos de una transacción, cuando la transacción se revierte, los cambios se descartan y los datos no varían.

El primer comando usa Start-Transaction para iniciar una transacción.

El segundo comando usa New-Object para crear un objeto TransactedString . Almacena el objeto en la $TransactedString variable .

El tercer comando, que no forma parte de la transacción, usa el método Append para agregar "Hello" al valor de $TransactedString.

El cuarto comando usa Use-Transaction para ejecutar otro comando que usa el método Append en la transacción. El comando usa el método Append para agregar ", World" al valor de $TransactedString.

El quinto comando usa el cmdlet Undo-Transaction para revertir la transacción. Como resultado, se invierten todos los comandos realizados en la transacción.

El comando final usa el método ToString para mostrar el valor resultante de $TransactedString como una cadena. Los resultados muestran que solo se aplicaron los cambios realizados fuera de la transacción al objeto .

Parámetros

-TransactedScript

Especifica el bloque de script que se ejecuta en la transacción. Escriba cualquier bloque de script válido entre llaves ({}). Este parámetro es obligatorio.

Type:ScriptBlock
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-UseTransaction

Incluye el comando en la transacción activa. Este parámetro solo es válido cuando hay una transacción en curso. Para obtener más información, consulte about_transactions.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

None

No se puede canalizar la entrada a este cmdlet.

Salidas

PSObject

Este cmdlet devuelve el resultado de la transacción.

Notas

  • El parámetro UseTransaction incluye el comando en la transacción activa. Dado que el Use-Transaction cmdlet siempre se usa en transacciones, este parámetro es necesario para que cualquier Use-Transaction comando sea eficaz.