Partager via


Use-Transaction

Ajoute le bloc de script à la transaction active.

Syntaxe

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

Description

La cmdlet Use-Transaction 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.

l' 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

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

Cet exemple montre comment utiliser Use-Transaction pour générer un script sur un objet .NET Framework compatible avec les transactions. Dans ce cas, l’objet est un objet TransactedString.

La première commande utilise l’applet de commande Start-Transaction 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 variable $TransactedString.

Les troisième et quatrième commandes utilisent la méthode Append de l’objet TransactedString 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. Étant donné que la commande ne fait pas partie de la transaction, la modification est appliquée immédiatement.

La quatrième commande utilise Use-Transaction pour ajouter du texte à la chaîne de la transaction. La commande utilise la méthode append pour ajouter « World » à la valeur de $TransactedString. La commande est placée entre accolades ({}) pour en faire 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 du 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. Étant donné qu’elle ne fait pas partie de la transaction, elle affiche uniquement 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 de commande Complete-Transaction 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

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

Cet exemple montre l’effet de la restauration d’une transaction qui inclut commandes Use-Transaction. Comme toutes les commandes d’une transaction, lorsque la transaction est restaurée, les modifications traitées sont ignorées et les données sont 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 variable $TransactedString.

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 de $TransactedString sous forme de 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 exécuté dans la transaction. Entrez tout bloc de script valide placé entre accolades ( { } ). Ce paramètre est requis.

Type:ScriptBlock
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-UseTransaction

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

Type:SwitchParameter
Alias:usetx
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

None

Vous ne pouvez pas diriger l’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 de commande Use-Transaction est toujours utilisée dans les transactions, ce paramètre est nécessaire pour rendre effective toute commande Use-Transaction.