Compartir a través de


Use-Transaction

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

Sintaxis

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

Description

El cmdlet Use-Transaction 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

PS C:\> Start-Transaction
PS C:\> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString
PS C:\> $transactedString.Append("Hello")
PS C:\> Use-Transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction
PS C:\> $transactedString.ToString()
Hello
PS C:\> Use-Transaction -TransactedScript { $transactedString.ToString() } -UseTransaction
Hello, World
PS C:\> Complete-Transaction
PS C:\> $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 cmdlet Start-Transaction para iniciar una transacción.

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

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 transaccionada 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 del 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. Dado que no forma 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 cmdlet Complete-Transaction 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

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

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

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 variable $TransactedString.

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 use 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.

Tipo:ScriptBlock
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-UseTransaction

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

Tipo:SwitchParameter
Alias:usetx
Posición:Named
Valor predeterminado:False
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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 cmdlet Use-Transaction siempre se usa en transacciones, este parámetro es necesario para que cualquier comando Use-Transaction sea eficaz .