Partager via


about_Transactions

RUBRIQUE
    about_Transactions

DESCRIPTION COURTE
    Décrit comment gérer les opérations basées sur les transactions 
    dans Windows PowerShell. 

DESCRIPTION LONGUE
    Les transactions sont prises en charge dans Windows PowerShell à 
    partir de la version Windows PowerShell 2.0. Cette fonctionnalité 
    vous permet de démarrer une transaction, d'indiquer quelles 
    commandes font partie de la transaction et de valider ou de 
    restaurer une transaction.
    
    
  À PROPOS DES TRANSACTIONS

      Dans Windows PowerShell, une transaction est un jeu d'une ou 
      plusieurs commandes gérées comme une unité logique. Une 
      transaction peut être effectuée (" validée "), ce qui modifie 
      les données concernées par la transaction. Une transaction peut 
      aussi être annulée (" restaurée ") afin que les données 
      concernées ne soient pas modifiées par la transaction. 

      Comme les commandes figurant dans une transaction sont gérées 
      en bloc, toutes les commandes sont soit validées, soit restaurées. 

      Les transactions sont largement utilisées dans le traitement 
      des données, plus particulièrement dans les opérations de base 
      de données et pour les transactions financières. Les 
      transactions sont utilisées, le plus souvent, dans le cas d'un 
      jeu de commandes, lorsque le scénario le plus défavorable ne 
      consiste pas en l'échec de toutes les commandes, mais seulement 
      d'une partie, laissant le système dans un état endommagé, faux, 
      ou non interprétable et difficile à réparer.

            
  APPLETS DE COMMANDE DE TRANSACTION

      Windows PowerShell inclut plusieurs applets de commande conçues 
      pour gérer les transactions.

      Applets de commande   Description
      -----------------     ---------------------------------   
      Start-Transaction     Démarre une nouvelle transaction. 

      Use-Transaction       Ajoute une commande ou une 
                            expression à la transaction. 
                            La commande doit utiliser des 
                            objets prenant en charge les transactions.

      Undo-Transaction      Restaure la transaction afin 
                            qu'aucune donnée ne soit modifiée 
                            par la transaction.

      Complete-Transaction  Valide la transaction. Les données 
                            concernées par la transaction sont 
                            modifiées.

      Get-Transaction       Obtient des informations à propos 
                            de la transaction active.


      Pour obtenir une liste d'applets de commande de transaction, tapez :

          get-command *transaction

      Pour plus d'informations sur les applets de commande, tapez :

      get-help <nom-applet-de-commande> -detailed

      Par exemple :
    
      get-help use-transaction -detailed


  ÉLÉMENTS PRENANT EN CHARGE LES TRANSACTIONS

      Pour participer à une transaction, à la fois l'applet de 
      commande et le fournisseur doivent prendre en charge des 
      transactions. Cette fonctionnalité est intégrée aux objets 
      affectés par la transaction.
   
      Le fournisseur de Registre Windows PowerShell prend en charge 
      des transactions dans Windows Vista. L'objet TransactedString 
      (Microsoft.PowerShell.Commands.Management.TransactedString) 
      fonctionne avec tout système d'exploitation qui exécute 
      Windows PowerShell. 

      D'autres fournisseurs Windows PowerShell peuvent prendre en 
      charge des transactions. Pour rechercher les fournisseurs 
      Windows PowerShell dans votre session qui prennent en charge 
      les transactions, utilisez la commande suivante pour rechercher 
      la valeur " Transactions " dans la propriété Capabilities 
      des fournisseurs :

      get-psprovider | where {$_.Capabilities -like "*transactions*"}

      Pour plus d'informations sur un fournisseur, consultez l'aide 
      relative à ce fournisseur.
      Pour obtenir de l'aide sur un fournisseur, tapez :

      get-help <nom-du-fournisseur>

      Par exemple, pour obtenir de l'aide sur le fournisseur de 
      Registre, tapez :

      get-help registry
  


  PARAMÈTRE USETRANSACTION

      Les applets de commande qui peuvent prendre en charge des 
      transactions possèdent un paramètre UseTransaction. Ce 
      paramètre inclut la commande dans la transaction active. Vous pouvez 
      utiliser le nom complet du paramètre ou son alias, " usetx ".

      Le paramètre peut être utilisé uniquement lorsque la session 
      contient une transaction active. Si vous entrez une commande avec le 
      paramètre UseTransaction lorsqu'aucune transaction n'est active, la 
      commande échoue.

      Pour rechercher des applets de commande avec le paramètre 
      UseTransaction, tapez :

      get-help * -parameter UseTransaction  

      Au cœur de Windows PowerShell, toutes les applets de commande 
      conçues pour fonctionner avec des fournisseurs Windows 
      PowerShell prennent en charge des transactions. Par conséquent, 
      vous pouvez utiliser les applets de commande du fournisseur 
      pour gérer des transactions. 

      Pour plus d'informations sur les fournisseurs Windows PowerShell, 
      consultez about_Providers.  
 

  OBJET TRANSACTION

      Les transactions sont représentées dans Windows PowerShell par 
      un objet de transaction, System.Management.Automation.Transaction.

      L'objet a les propriétés suivantes :

      RollbackPreference : 
          contient le jeu de préférences de restauration pour la 
          transaction actuelle. Vous pouvez définir la préférence de 
          restauration lorsque vous utilisez Start-Transaction pour 
          démarrer la transaction. 

          La préférence de restauration spécifie les conditions sous 
          lesquelles la transaction est automatiquement restaurée. 
          Les valeurs valides sont Error, TerminatingError et Never. 
          La valeur par défaut est Error.

      Status :              
         contient l'état en cours de la transaction. Les valeurs 
         valides sont Active, Committed et RolledBack.


      SubscriberCount :              
         contient le nombre d'abonnés à la transaction. Un abonné est 
         ajouté à une transaction lorsque vous démarrez une 
         transaction pendant qu'une autre transaction est en cours. 
         Le nombre d'abonnés est décrémenté lorsqu'un abonné valide 
         la transaction.
    

  TRANSACTIONS ACTIVES

      Dans Windows PowerShell, une seule transaction est active à la 
      fois, et vous pouvez gérer uniquement la transaction active. 
      Plusieurs transactions peuvent être en cours en même temps dans 
      la même session, mais uniquement la dernière transaction 
      commencée est active. 

      Par conséquent, vous ne pouvez pas spécifier de transaction 
      particulière lors de l'utilisation des applets de commande de 
      transaction. Les commandes s'appliquent toujours à la 
      transaction active.

      Le comportement de l'applet de commande Get-Transaction en est 
      la parfaite démonstration. Lorsque vous entrez une commande 
      Get-Transaction, cette dernière obtient toujours un seul objet de 
      transaction. Cet objet est celui qui représente la transaction active. 

      Pour gérer une transaction différente, vous devez au préalable 
      terminer la transaction active, en la validant ou en la 
      restaurant. Ainsi, la transaction précédente devient 
      automatiquement active. Les transactions deviennent actives 
      dans l'ordre inverse de celui dans lequel elles ont démarré, 
      afin que la dernière transaction commencée soit toujours active.


  ABONNÉS ET TRANSACTIONS INDÉPENDANTES

      Si vous démarrez une transaction pendant qu'une autre 
      transaction est en cours, par défaut, Windows PowerShell ne 
      démarre pas de nouvelle transaction. Il ajoute à la place un 
      deuxième " abonné " à la transaction actuelle.

      Lorsque la transaction comporte plusieurs abonnés, une commande 
      Undo-Transaction unique restaure l'intégralité de la transaction 
      pour tous les abonnés à un moment ou un autre. Toutefois, pour 
      valider la transaction, vous devez entrer une commande 
      Complete-Transaction pour chaque abonné.

      Pour rechercher le nombre d'abonnés à une transaction, vérifiez 
      la propriété SubscriberCount de l'objet de transaction. Par 
      exemple, la commande suivante utilise l'applet de commande 
      Get-Transaction pour obtenir la valeur de la propriété 
      SubscriberCount de la transaction active :

          (Get-Transaction).SubscriberCount
        
      L'ajout d'un abonné est le comportement par défaut car la 
      plupart des transactions démarrées pendant qu'une autre 
      transaction est en cours sont liées à la transaction d'origine. 
      Dans le modèle traditionnel, un script qui contient une 
      transaction appelle un script d'application auxiliaire qui 
      contient sa propre transaction. Étant donné que les 
      transactions sont liées, elles doivent être restaurées ou 
      validées en bloc.

      Toutefois, vous pouvez démarrer une transaction qui est 
      indépendante de la transaction actuelle à l'aide du paramètre 
      Independent de l'applet de commande Start-Transaction.

      Lorsque vous démarrez une transaction indépendante, 
      Start-Transaction crée un objet de transaction et la nouvelle 
      transaction devient la transaction active. La transaction 
      indépendante peut être validée ou restaurée sans affecter la 
      transaction d'origine.

      Lorsque la transaction indépendante est terminée (validée ou 
      restaurée), la transaction d'origine redevient active.


  MODIFICATION DE DONNÉES

      Lorsque vous utilisez des transactions pour modifier des 
      données, les données affectées par la transaction ne sont pas 
      modifiées jusqu'à ce que vous validiez la transaction.
      Toutefois, les mêmes données peuvent être modifiées par les 
      commandes qui ne font pas partie de la transaction. 

      Gardez cet élément à l'esprit lorsque vous utilisez des 
      transactions pour gérer des données partagées. En général, les 
      bases de données ont des mécanismes qui verrouillent les 
      données pendant que vous les utilisez, empêchant d'autres 
      utilisateurs et d'autres commandes, scripts et fonctions de les 
      modifier.

      Toutefois, le verrouillage est une fonctionnalité de la base de 
      données. Il n'est pas lié aux transactions. Si vous travaillez 
      dans un système de fichiers prenant en charge les transactions 
      ou un autre magasin de données, les données peuvent être 
      modifiées pendant que la transaction est en cours.


EXEMPLES
    Les exemples mentionnés dans cette section utilisent le fournisseur de 
    Registre de Windows PowerShell et supposent qu'il vous est familier. 
    Pour plus d'informations sur le fournisseur de Registre, 
    tapez " get-help registry ".

  EXEMPLE 1 : VALIDATION D'UNE TRANSACTION

    Pour créer une transaction, utilisez l'applet de commande 
    Start-Transaction. La commande suivante démarre une transaction 
    avec les paramètres par défaut.
 
    start-transaction

    Pour inclure des commandes dans la transaction, utilisez le paramètre 
    UseTransaction de l'applet de commande. Par défaut, les commandes ne 
    sont pas incluses dans la transaction. 

    Par exemple, la commande suivante, qui définit l'emplacement 
    actuel dans la clé Software du lecteur HKCU:, n'est pas inclus dans la 
    transaction.

        cd hkcu:\Software

    La commande suivante, qui crée la clé MyCompany, utilise le paramètre 
    UseTransaction de l'applet de commande New-Item pour inclure la 
    commande dans la transaction active.

        new-item MyCompany -UseTransaction

    La commande retourne un objet qui représente la nouvelle clé, 
    mais étant donné que la commande fait partie de la transaction, 
    le Registre n'est pas encore modifié.

        Hive: HKEY_CURRENT_USER\Software

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

    Pour valider la transaction, utilisez l'applet de commande 
    Complete- Transaction. Étant donné qu'elle affecte toujours 
    la transaction active, vous ne pouvez pas spécifier la transaction.

    complete-transaction  


    Par conséquent, la clé MyCompany est ajoutée au Registre.

    dir m*
       
        Hive: HKEY_CURRENT_USER\software

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


  EXEMPLE 2 : RESTAURATION D'UNE TRANSACTION

    Pour créer une transaction, utilisez l'applet de commande 
    Start-Transaction. La commande suivante démarre une transaction 
    avec les paramètres par défaut.
 
    start-transaction

    La commande suivante, qui crée la clé MyOtherCompany, utilise le 
    paramètre UseTransaction de l'applet de commande New-Item pour 
    inclure la commande dans la transaction active.

        new-item MyOtherCompany -UseTransaction

    La commande retourne un objet qui représente la nouvelle clé, 
    mais étant donné que la commande fait partie de la transaction, 
    le Registre n'est pas encore modifié.

        Hive: HKEY_CURRENT_USER\Software

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


    Pour restaurer la transaction, utilisez l'applet de commande 
    Undo-Transaction. Étant donné qu'il affecte toujours la 
    transaction active, vous ne spécifiez pas la transaction.

    Undo-transaction  

    Il en résulte que la clé MyOtherCompany n'est pas ajoutée au Registre.

    dir m*
       
        Hive: HKEY_CURRENT_USER\software

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


 
  EXEMPLE 3 : AFFICHAGE DE L'APERÇU D'UNE TRANSACTION

    En général, les commandes utilisées dans une transaction 
    modifient les données. Toutefois, les commandes qui obtiennent 
    des données sont utiles dans une transaction, parce qu'elles en 
    obtiennent aussi à l'intérieur de la transaction. Cela fournit un 
    aperçu des modifications que la validation de la transaction 
    provoquerait.

    L'exemple suivant montre la façon d'utiliser la commande Get-ChildItem 
    (l'alias est " dir ") pour afficher un aperçu des modifications dans une 
    transaction.


    La commande suivante démarre une transaction.

    start-transaction

    La commande suivante utilise l'applet de commande New-ItemProperty
    pour ajouter l'entrée de registre MyKey à la clé de Registre 
    MyCompany. La commande utilise le paramètre UseTransaction pour 
    inclure la commande dans la transaction.


        new-itemproperty -path MyCompany -Name MyKey -value 123 -UseTransaction

    La commande retourne un objet qui représente la nouvelle entrée 
    de Registre, mais l'entrée de Registre n'est pas modifiée.

        MyKey
        -----
        123


    Pour obtenir les éléments qui sont actuellement dans le Registre, 
    utilisez une commande Get-ChildItem (" dir ") sans le paramètre 
    UseTransaction. La commande suivante obtient des éléments qui 
    commencent par " M ".

    dir m*


    Le résultat montre qu'aucune entrée n'a encore été ajoutée à la 
    clé MyCompany.

        Hive: HKEY_CURRENT_USER\Software

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


    Pour afficher un aperçu de l'effet de la validation de la 
    transaction, entrez une commande Get-ChildItem (" dir ") avec le 
    paramètre UseTransaction. Cette commande fournit une vue des 
    données à partir de l'intérieur de la transaction.


    dir m* -useTransaction


    Le résultat montre que, si la transaction est validée, l'entrée 
    MyKey sera ajoutée à la clé MyCompany.


        Hive: HKEY_CURRENT_USER\Software

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


     
  EXEMPLE 4 : COMBINAISON DE COMMANDES BASÉES OU NON SUR DES TRANSACTIONS

    Lors d'une transaction, vous pouvez entrer des commandes non 
    basées sur des transactions. Les commandes non basées sur les 
    transactions affectent immédiatement les données, mais 
    n'affectent pas la transaction.

    La commande suivante démarre une transaction dans la clé de Registre 
    HKCU:\Software.

    start-transaction


    Les trois commandes suivantes utilisent l'applet de commande 
    New-Item pour ajouter des clés au Registre. La première et la 
    troisième commande utilisent le paramètre UseTransaction pour 
    inclure les commandes dans la transaction. La deuxième commande 
    omet le paramètre. Étant donné que la deuxième commande n'est pas 
    incluse dans la transaction, le résultat est immédiatement effectif.

        new-item MyCompany1 -UseTransaction

        new-item MyCompany2

        new-item MyCompany3 -UseTransaction


    Pour consulter l'état actuel du Registre, utilisez une commande 
    Get-ChildItem (" dir ") sans le paramètre UseTransaction. Cette 
    commande obtient des éléments qui commencent par " M ".

    dir m*

    Le résultat montre que la clé MyCompany2 est ajoutée au Registre, 
    mais les clés MyCompany1 et MyCompany3, qui font partie de la 
    transaction, ne le sont pas.
     
        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Name                           Property
        ---  -- ----                           --------
        83   1 Microsoft                      {(default)}
         0   0 MyCompany2                      {}


    La commande suivante valide la transaction. 

        complete-transaction

    À présent, les clés ajoutées dans le cadre de la transaction 
    apparaissent dans le Registre.

    dir m*

     
        Hive: HKEY_CURRENT_USER\Software

        SKC  VC Name                           Property
        ---  -- ----                           --------
        83   1 Microsoft                      {(default)}
        0    0 MyCompany1                     {}
        0    0 MyCompany2                     {}
        0    0 MyCompany3                     {}


  EXEMPLE 5 : UTILISATION DE LA RESTAURATION AUTOMATIQUE

    Lorsqu'une commande figurant dans une transaction génère une 
    erreur de quelque type que ce soit, la transaction est 
    automatiquement restaurée par défaut. 

    Ce comportement par défaut est conçu pour les scripts qui 
    exécutent des transactions. Comme les scripts sont en général 
    correctement testés et incluent une logique de gestion des 
    erreurs, on ne s'attend pas à ce que des erreurs se produisent ; 
    le cas échéant, elles devraient mettre fin à la transaction. 

    La première commande démarre une transaction dans la clé de Registre 
    HKCU:\Software.

    start-transaction

    La commande suivante utilise l'applet de commande New-Item pour 
    ajouter la clé MyCompany au Registre. La commande utilise le paramètre 
    UseTransaction (l'alias est " usetx ") pour inclure la commande dans la 
    transaction.

    New-Item MyCompany -UseTX

    Parce que la clé MyCompany existe déjà dans le Registre, la 
    commande échoue et la transaction est annulée. 

        New-Item : une clé à ce chemin d'accès existe déjà À la 
        ligne : 1 Caractère : 9
        + new-item <<<<  MyCompany -usetx

    Une commande Get-Transaction confirme que la transaction a été 
    restaurée et que SubscriberCount a la valeur 0.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                0                 RolledBack 


        
  EXEMPLE 6 : MODIFICATION DE LA PRÉFÉRENCE DE RESTAURATION

    Si vous souhaitez que la transaction présente une meilleure 
    tolérance à l'erreur, vous pouvez utiliser le paramètre 
    RollbackPreference de Start-Transaction pour modifier la préférence.

    La commande suivante démarre une transaction avec une préférence de 
    restauration qui a la valeur " Never ".

         start-transaction -rollbackpreference Never

    Dans ce cas, lorsque la commande échoue, la transaction n'est pas 
    restaurée automatiquement.

    New-Item MyCompany -UseTX

        New-Item : une clé à ce chemin d'accès existe déjà À la 
        ligne : 1 Caractère : 9
        + new-item <<<< MyCompany -usetx
   
     
    Étant donné que la transaction est encore active, vous pouvez 
    renvoyer la commande dans le cadre de la transaction. 

    New-Item MyOtherCompany -UseTX



  EXEMPLE 7 : UTILISATION DE L'APPLET DE COMMANDE USE-TRANSACTION

    L'applet de commande Use-Transaction vous permet d'écrire 
    directement des scripts à partir d'objets Microsoft .NET 
    Framework prenant en charge des transactions.
    Use-Transaction prend un bloc de script qui peut contenir 
    uniquement des commandes et des expressions qui utilisent des 
    objets .NET Framework prenant en charge des transactions, tels que des 
    instances de 
    la classe Microsoft.PowerShell.Commands.Management.TransactedString.

    La commande suivante démarre une transaction.

         start-transaction

    La commande New-Object suivante crée une instance de la classe 
    TransactedString et l'enregistre dans la variable $t.

         $t = New-Object Microsoft.PowerShell.Commands.Management.TransactedString

    La commande suivante utilise la méthode Append de l'objet 
    TransactedString pour ajouter du texte à la chaîne. Comme la 
    commande ne fait pas partie de la transaction, la modification est 
    immédiatement effective.

     $t.append("Windows") 

    La commande suivante utilise la même méthode Append pour ajouter 
    le texte, mais elle ajoute le texte dans le cadre de la 
    transaction. La commande est mise entre accolades et elle est 
    définie comme valeur du paramètre ScriptBlock de Use-Transaction. 
    Le paramètre UseTransaction (UseTx) est obligatoire.

     use-transaction {$t.append(" PowerShell")} -usetx

    Pour consulter le contenu actuel de la chaîne basée sur des 
    transactions dans $t, utilisez la méthode ToString de l'objet 
    TransactedString.
                 
     $t.tostring()   

    La sortie montre que seules les modifications non basées sur des 
    transactions sont effectives.

     Windows    

    Pour consulter le contenu actuel de la chaîne basée sur les 
    transactions dans $t à partir de l'intérieur de la transaction, 
    incorporez l'expression dans une commande Use-Transaction. 

     use-transaction {$s.tostring()} -usetx   

    La sortie affiche la vue de la transaction.

     Windows PowerShell

    La commande suivante valide la transaction.

     complete-transaction

    Pour consulter la dernière chaîne :

     $t.tostring()
    
     Windows PowerShell


  EXEMPLE 7 : GESTION DE TRANSACTIONS QUI COMPORTENT PLUSIEURS ABONNÉS

    Lorsque vous démarrez une transaction pendant qu'une autre 
    transaction est en cours, Windows PowerShell ne crée pas une deuxième 
    transaction par défaut. Il ajoute à la place un deuxième abonné à la 
    transaction actuelle. 

    Cet exemple montre comment afficher et gérer une transaction qui 
    comporte plusieurs abonnés.

    Commencez par démarrer une transaction dans la clé HKCU:\Software.
    
        start-transaction
    
    La commande suivante utilise la commande Get-Transaction pour 
    obtenir la transaction active.

    get-transaction


    Le résultat affiche l'objet qui représente la transaction active.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active 
     
    La commande suivante ajoute la clé MyCompany au Registre.
    La commande utilise le paramètre UseTransaction pour inclure la 
    commande dans la transaction.
                 
        new-item MyCompany -UseTransaction


    La commande suivante utilise la commande Start-Transaction pour 
    démarrer une transaction. Bien que cette commande soit tapée à 
    l'invite de commandes, il est plus probable que ce scénario se 
    produise lorsque vous exécutez un script contenant une transaction.

        start-transaction


    Une commande Get-Transaction montre que le nombre d'abonnés sur 
    l'objet de transaction est incrémenté. La valeur est maintenant 2.   

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

    La commande suivante utilise l'applet de commande New-ItemProperty
    pour ajouter l'entrée de Registre MyKey à la clé MyCompany. Elle 
    utilise le paramètre UseTransaction pour inclure la commande dans 
    la transaction.

        new-itemproperty -path MyCompany -name MyKey -UseTransaction


    La clé MyCompany n'existe pas dans le Registre, mais cette 
    commande réussit parce que les deux commandes font partie de la même 
    transaction.

    La commande suivante valide la transaction. Si la transaction a 
    été restaurée, elle l'aura été pour tous les abonnés.

    complete-transaction


    Une commande Get-Transaction montre que le nombre d'abonnés sur 
    l'objet de transaction est 1, mais la valeur de Status est encore 
    Active (et pas Committed).   


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


    Pour terminer de valider la transaction, entrez une deuxième commande 
    Complete- Transaction. Pour valider une transaction qui comporte 
    plusieurs abonnés, vous devez entrer une commande Complete-Transaction
    pour chaque commande Start-Transaction.

        complete-transaction

      
    Une autre commande Get-Transaction affiche que la transaction a 
    été validée.


        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                0                 Committed 

  EXEMPLE 8 : GESTION DE TRANSACTIONS INDÉPENDANTES

    Lorsque vous démarrez une transaction pendant qu'une autre 
    transaction est en cours, vous pouvez utiliser le paramètre 
    Independent de Start-Transaction pour rendre la nouvelle 
    transaction indépendante de la transaction d'origine.

    Lorsque vous le faites, Start-Transaction crée un objet de 
    transaction et rend active la nouvelle transaction.

    Commencez par démarrer une transaction dans la clé HKCU:\Software.
    
        start-transaction
     
    La commande suivante utilise la commande Get-Transaction pour 
    obtenir la transaction active.

    get-transaction


    Le résultat affiche l'objet qui représente la transaction active.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active 
     
    La commande suivante ajoute la clé de Registre MyCompany dans le 
    cadre de la transaction. Elle utilise le paramètre UseTransaction 
    (UseTx) pour inclure la commande dans la transaction active.

    new-item MyCompany -use


    La commande suivante démarre une nouvelle transaction. La 
    commande utilise le paramètre Independent pour indiquer que cette 
    transaction n'est pas une abonnée de la transaction active.

         start-transaction -independent

    Lorsque vous créez une transaction indépendante, la nouvelle 
    (c'est-à-dire la dernière) transaction devient la transaction 
    active. Vous pouvez utiliser une commande Get-Transaction pour 
    obtenir la transaction active. 

    get-transaction

    Notez que la valeur de SubscriberCount de la transaction est 1, 
    indiquant qu'il n'y a pas d'autres abonnés et que la transaction 
    est nouvelle.

        RollbackPreference   SubscriberCount   Status
        ------------------   ---------------   ------
        Error                1                 Active 
    La nouvelle transaction doit être terminée (validée ou restaurée) 
    avant de pouvoir gérer la transaction d'origine.

    La commande suivante ajoute la clé MyOtherCompany au Registre.
    Elle utilise le paramètre UseTransaction (UseTx) pour inclure la 
    commande dans la transaction active.

        new-item MyOtherCompany -usetx

    À présent, restaurez la transaction. S'il y avait une transaction 
    unique avec deux abonnés, la restauration de la transaction 
    restaurerait la transaction entière pour tous les abonnés.

    Toutefois, parce que ces transactions sont indépendantes, restaurer la 
    dernière transaction annule les modifications du Registre et rend 
    active la transaction d'origine.

        undo-transaction

    Une commande Get-Transaction confirme que la transaction 
    d'origine est encore active dans la session.


    get-transaction

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

    La commande suivante valide la transaction active.

        complete-transaction


    Une commande Get-ChildItem montre que le Registre a été modifié.

    dir m*


        Hive: HKEY_CURRENT_USER\Software

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

VOIR AUSSI
    Start-Transaction
    Get-Transaction
    Complete-Transaction
    Undo-Transaction
    Use-Transaction
    Registry (fournisseur)
    about_Providers
    Get-PSProvider
    Get-ChildItem