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

Sintaxis

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

Descripción

El cmdlet Use-Transaction agrega un bloque de script a una transacción activa. Esto permite realizar scripting con transacciones mediante el uso de 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 obligatorio cuando se usa este cmdlet.

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

Parámetros

-TransactedScript <scriptblock>

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.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

ninguno

¿Aceptar 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 hay una transacción en curso. Para obtener más información, vea about_Transactions.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

Ninguno

No se pueden canalizar entradas a este cmdlet.

Salidas

PSObject

Use-Transaction devuelve el resultado de la transacción.

Notas

El parámetro Use-Transaction incluye el comando en la transacción activa. Dado que el cmdlet Use-Transaction siempre se utiliza en transacciones, este parámetro es obligatorio para que cualquier comando Use-Transaction surta efecto.

Ejemplo 1

C:\PS>start-transaction

C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction

C:\PS> $transactedString.ToString()
Hello
 
C:\PS> use-transaction -transactedScript { $transactedString.ToString() } -UseTransaction
Hello, World

C:\PS> complete-transaction
C:\PS> $transactedString.ToString()
Hello, World

Descripción
-----------
En este ejemplo se muestra la forma de utilizar el cmdlet Use-Transaction para ejecutar script en un objeto de .NET Framework habilitado para transacciones. En este caso, el objeto es un objeto TransactedString. 

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

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

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

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

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

Los comandos quinto y sexto utilizan 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 pero el otro no.

El quinto comando utiliza el método ToString para mostrar el valor actual de la variable $TransactedString. Como no forma parte de la transacción, muestra solamente el estado actual de la cadena.

El sexto comando utiliza el cmdlet Use-Transaction para ejecutar el mismo comando dentro de la transacción. Como el comando forma parte de la transacción, muestra el valor actual de la cadena dentro de la transacción, de forma parecida a una vista previa de los cambios de la transacción.

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

El último comando utiliza el método ToString para mostrar el valor resultante de la variable como una cadena.






Ejemplo 2

C:\PS>start-transaction

C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

C:\PS> $transactedString.Append("Hello")
C:\PS> use-transaction -TransactedScript { $transactedString.Append(", World") } -UseTransaction

C:\PS> undo-transaction

C:\PS> $transactedString.ToString()
Hello

Descripción
-----------
En este ejemplo se muestra el efecto de revertir una transacción que incluye comandos Use-Transaction. Como todos los comandos de una transacción, cuando la transacción se revierte, los cambios se descartan y los datos permanecen inalterados.

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

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

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

El cuarto comando utiliza el cmdlet Use-Transaction para ejecutar otro comando que utiliza el método Append dentro de la transacción. El comando utiliza 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 consecuencia, todos los comandos realizados dentro de la transacción se revierten.

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






Vea también




Tabla de contenido