Partager via


Use-Transaction

Ajoute le bloc de script à la transaction active.

Syntax

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

Description

L’applet Use-Transaction de commande ajoute un bloc de script à une transaction active. Cela vous permet d’effectuer des scripts transactionnels à l’aide d’objets Microsoft .NET Framework compatibles avec les transactions. Le bloc de script peut contenir uniquement des objets .NET Framework compatibles avec les transactions, tels que les instances de la classe Microsoft.PowerShell.Commands.Management.TransactedString .

Le paramètre UseTransaction , facultatif pour la plupart des applets de commande, est requis lorsque vous utilisez cette applet de commande.

Use-Transaction est l’un des ensembles d’applets de commande qui prennent en charge la fonctionnalité de transactions dans Windows PowerShell. Pour plus d’informations, consultez about_Transactions.

Exemples

Exemple 1 : Script à l’aide d’un objet compatible transactionnel

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

Cet exemple montre comment utiliser Use-Transaction un script sur un objet .NET Framework prenant en charge les transactions. Dans ce cas, l’objet est un objet TransactedString .

La première commande utilise l’applet Start-Transaction de commande pour démarrer une transaction.

La deuxième commande utilise la commande New-Object pour créer un objet TransactedString . Il stocke l’objet dans la $TransactedString variable.

Les troisième et quatrième commandes utilisent la méthode Append de l’objet TransactedString pour ajouter du texte à la valeur de $TransactedString. Une commande fait partie de la transaction. L’autre commande n’est pas.

La troisième commande utilise la méthode Append de la chaîne traitée pour ajouter Hello à la valeur de $TransactedString. Comme la commande ne fait pas partie de la transaction, la modification est immédiatement appliquée.

La quatrième commande utilise Use-Transaction pour ajouter du texte à la chaîne dans la transaction. La commande utilise la méthode Append pour ajouter « World » à la valeur de $TransactedString. La commande est placée entre accolades ({}) pour le rendre un bloc de script. Le paramètre UseTransaction est requis dans cette commande.

Les cinquième et sixième commandes utilisent la méthode ToString de l’objet TransactedString pour afficher la valeur de TransactedString sous forme de chaîne. Là encore, une commande fait partie de la transaction. L’autre transaction n’est pas.

La cinquième commande utilise la méthode ToString pour afficher la valeur actuelle de la variable $TransactedString. Comme elle ne fait pas partie de la transaction, elle n’affiche que l’état actuel de la chaîne.

La sixième commande utilise Use-Transaction pour exécuter la même commande dans la transaction. Étant donné que la commande fait partie de la transaction, elle affiche la valeur actuelle de la chaîne dans la transaction, comme un aperçu de la transaction change.

La septième commande utilise l’applet Complete-Transaction de commande pour valider la transaction.

La commande finale utilise la méthode ToString pour afficher la valeur résultante de la variable sous forme de chaîne.

Exemple 2 : Restaurer une transaction

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

Cet exemple montre l’effet de la restauration d’une transaction qui inclut Use-Transaction des commandes. Comme pour toutes les commandes d’une transaction, lorsque la transaction est restaurée, les modifications basées sur les transactions sont ignorées et les données restent inchangées.

La première commande utilise Start-Transaction pour démarrer une transaction.

La deuxième commande utilise New-Object pour créer un objet TransactedString . Il stocke l’objet dans la $TransactedString variable.

La troisième commande, qui ne fait pas partie de la transaction, utilise la méthode Append pour ajouter « Hello » à la valeur de $TransactedString.

La quatrième commande utilise Use-Transaction pour exécuter une autre commande qui utilise la méthode Append dans la transaction. La commande utilise la méthode Append pour ajouter « World » à la valeur de $TransactedString.

La cinquième commande utilise l’applet de commande Undo-Transaction pour restaurer la transaction. Par conséquent, toutes les commandes effectuées dans la transaction sont inversées.

La commande finale utilise la méthode ToString pour afficher la valeur résultante sous forme de $TransactedString chaîne. Les résultats indiquent que seules les modifications apportées en dehors de la transaction ont été appliquées à l’objet.

Paramètres

-TransactedScript

Spécifie le bloc de script qui est exécuté dans la transaction. Entrez tout bloc de script valide placé entre accolades ({}). Ce paramètre est obligatoire.

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

-UseTransaction

Inclut la commande dans la transaction active. Ce paramètre est uniquement valide au cours d’une transaction. Pour plus d’informations, consultez about_transactions.

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

Entrées

None

Vous ne pouvez pas diriger d'entrée vers cette applet de commande.

Sorties

PSObject

Cette applet de commande retourne le résultat de la transaction.

Notes

  • Le paramètre UseTransaction inclut la commande dans la transaction active. Étant donné que l’applet Use-Transaction de commande est toujours utilisée dans les transactions, ce paramètre est nécessaire pour rendre n’importe quelle Use-Transaction commande efficace.