Partager via


Complete-Transaction

Valide la transaction active.

Syntaxe

Complete-Transaction [-Confirm] [-WhatIf] [<CommonParameters>]

Description

L'applet de commande Complete-Transaction valide une transaction active. Lorsque vous validez une transaction, les commandes de la transaction sont finalisées et les données concernées par les commandes sont modifiées.

Lorsque la transaction comporte plusieurs abonnés, vous devez entrer une commande Complete-Transaction pour chaque commande Start-Transaction afin de valider la transaction.

L'applet de commande Complete-Transaction fait partie d'un jeu d'applets de commande qui prennent en charge la fonctionnalité des transactions dans Windows PowerShell. Pour plus d'informations, consultez about_Transactions.

Paramètres

-Confirm

Vous invite à confirmer l'exécution de la commande.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-WhatIf

Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

None

Vous ne pouvez pas diriger d'objets vers Complete-Transaction.

Sorties

None

Cette applet de commande ne retourne pas d'objets.

Remarques

Vous ne pouvez pas restaurer une transaction qui a été validée, ni valider une transaction qui a été restaurée.

Vous ne pouvez pas restaurer une autre transaction que la transaction active. Pour restaurer une autre transaction, vous devez commencer par valider ou restaurer la transaction active.

En cas d'impossibilité de restaurer une partie d'une transaction (lorsqu'une commande dans la transaction génère une erreur, par exemple), la transaction est par défaut entièrement restaurée.

Exemple 1

C:\PS>cd hkcu:\software

PS HKCU:\software> start-transaction

PS HKCU:\software> new-item MyCompany -UseTransaction
PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}

PS HKCU:\software> complete-transaction
PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

Description
-----------
Cet exemple illustre l'utilisation de l'applet de commande Complete-Transaction pour valider une transaction.

La commande Start-Transaction démarre la transaction. La commande New-Item utilise le paramètre UseTransaction pour inclure la commande dans la transaction.

La première commande « dir » (Get-ChildItem) indique que le nouvel élément n'a pas encore été ajouté au Registre.

La commande Complete-Transaction valide la transaction et la modification du Registre devient effective. La deuxième commande « dir » indique alors que le Registre a été modifié.





Exemple 2

C:\PS>cd hkcu:\software

PS HKCU:\software> start-transaction
PS HKCU:\software> new-item MyCompany -UseTransaction

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
  0   0 MyCompany                      {}

PS HKCU:\software> start-transaction
PS HKCU:\Software> Get-Transaction

RollbackPreference   SubscriberCount  Status
------------------   ---------------  ------
Error                2                Active

PS HKCU:\software> new-itemproperty -path MyCompany -name MyKey -value -UseTransaction

MyKey
-----
123

PS HKCU:\software> complete-transaction
PS HKCU:\software> get-transaction

RollbackPreference   SubscriberCount  Status
------------------   ---------------  ------
Error                1                Active

PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}

PS HKCU:\software> complete-transaction
PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}
  0   1 MyCompany                      {MyKey}

Description
-----------
Cet exemple montre comment utiliser Complete-Transaction pour valider une transaction qui comporte plusieurs abonnés. 

Pour valider une transaction qui comporte plusieurs abonnés, vous devez entrer une commande Complete-Transaction pour chaque commande Start-Transaction. Les données ne sont modifiées que lorsque la dernière commande Complete-Transaction est envoyée. 

À des fins de démonstration, cet exemple montre une série de commandes entrées au niveau de la ligne de commande. Dans la pratique, il est possible que les transactions soient exécutées dans des scripts, la transaction secondaire étant exécutée par un script de fonction ou d'application auxiliaire appelé par le script principal.

Dans cet exemple, une commande Start-Transaction démarre la transaction. Une commande New-Item avec le paramètre UseTransaction ajoute la clé MyCompany à la clé Software. Même si la commande New-Item retourne un objet clé, les données ne sont pas encore modifiées dans le Registre.

Une deuxième commande Start-Transaction ajoute un deuxième abonné à la transaction existante. La commande Get-Transaction confirme que le nombre d'abonnés est 2. Une commande New-ItemProperty avec le paramètre UseTransaction ajoute une entrée de Registre à la nouvelle clé MyCompany. Là encore, la commande retourne une valeur, mais le Registre n'est pas modifié.

La première commande Complete-Transaction réduit le nombre d'abonnés de 1. Cette opération est confirmée par une commande Get-Transaction. Aucune donnée n'est toutefois modifiée, comme l'atteste une commande « dir m* » (Get-ChildItem).

La seconde commande Complete-Transaction valide la transaction entière et modifie les données dans le Registre. Cette opération est confirmée par une seconde commande « dir m* » qui affiche les modifications.





Exemple 3

C:\PS>cd hkcu:\software

PS HKCU:\software> start-transaction

PS HKCU:\software> new-item MyCompany -UseTransaction

PS HKCU:\software> dir m*

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}


PS HKCU:\software> dir m* -UseTransaction

   Hive: HKEY_CURRENT_USER\Software

SKC  VC Name                           Property
---  -- ----                           --------
 82   1 Microsoft                      {(default)}
  0   0 MyCompany                      {}

PS HKCU:\software> complete-transaction

Description
-----------
Cet exemple montre l'utilisation de commandes Get-*, ainsi que d'autres commandes qui ne modifient pas les données, dans une transaction. Lorsqu'une commande Get-* est utilisée dans une transaction, elle obtient les objets qui font partie de cette transaction. Cela vous permet d'afficher un aperçu des modifications apportées à la transaction avant de les valider.

Dans cet exemple, une transaction est démarrée. Une commande New-Item avec le paramètre UseTransaction ajoute une nouvelle clé au Registre dans le cadre de la transaction.

Comme la nouvelle clé de Registre n'est pas ajoutée au Registre tant que la commande Complete-Transaction n'a pas été exécutée, une simple commande « dir » (Get-ChildItem) affiche le Registre sans la nouvelle clé. 

Lorsque vous ajoutez le paramètre UseTransaction à la commande « dir », la commande fait toutefois partie intégrante de la transaction et elle obtient les éléments de cette transaction même si ceux-ci n'ont pas encore été ajoutés aux données.





Voir aussi

Concepts

about_Transactions
Start-Transaction
Get-Transaction
Undo-Transaction
Use-Transaction