about_Transactions

Mis à jour: mai 2014

S'applique à: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

RUBRIQUE

about_Transactions

DESCRIPTION COURTE

Décrit comment gérer les opérations transactionnelles dans Windows PowerShell®.

DESCRIPTION DÉTAILLÉE

Les transactions sont prises en charge dans Windows PowerShell, à compter de Windows PowerShell 2.0. Cette fonctionnalité vous permet de démarrer une transaction, d’indiquer les commandes qui font partie de la transaction, et de valider ou d’annuler une transaction.

À PROPOS DES TRANSACTIONS

Dans Windows PowerShell, une transaction est un ensemble d’une ou plusieurs commandes qui sont gérées comme une unité logique. Une transaction peut être terminée (« validée »), ce qui change les données affectées par la transaction. Une transaction peut aussi être complètement défaite (« annulée »), de sorte que les données affectées ne sont pas changées par la transaction.

Comme les commandes d’une transaction sont gérées comme une unité, toutes les commandes sont validées ou bien toutes les commandes sont annulées.

Les transactions sont couramment utilisées dans le traitement de 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 quand le pire des scénarios pour un ensemble de commandes n’est pas qu’elles échouent toutes, mais quand certaines commandes réussissent tandis que d’autres échouent, laissant le système dans un état endommagé, faux ou non interprétable, qui est difficile à réparer.

APPLETS DE COMMANDE DE TRANSACTION

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

      Cmdlet                 Description
      --------------         ---------------------------------    
      Start-Transaction      Starts a new transaction. 

      Use-Transaction        Adds a command or expression to the
                             transaction. The command must use
                             transaction-enabled objects.

      Undo-Transaction       Rolls back the transaction so that
                             no data is changed by the transaction.

      Complete-Transaction   Commits the transaction. The data
                             affected by the transaction is changed.

      Get-Transaction        Gets information about the active
                             transaction.

Pour obtenir une liste des applets de commande de transaction, tapez :

          get-command *transaction

Pour obtenir des informations détaillées sur les applets de commande, tapez :

          get-help <cmdlet-name> -detailed

Exemple :

          get-help use-transaction -detailed

ÉLÉMENTS COMPATIBLES AVEC LES TRANSACTIONS

Pour participer à une transaction, l’applet de commande et le fournisseur doivent tous deux prendre en charge les transactions. Cette fonctionnalité est intégrée dans les objets qui sont affectés par la transaction.

Le fournisseur de Registre Windows PowerShell prend en charge les transactions dans Windows Vista. L’objet TransactedString (Microsoft.PowerShell.Commands.Management.TransactedString) fonctionne avec tout système d’exploitation exécutant Windows PowerShell.

D’autres fournisseurs Windows PowerShell peuvent prendre en charge les transactions. Pour trouver les fournisseurs Windows PowerShell de 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 du fournisseur. Pour obtenir l’aide du fournisseur, tapez :

        get-help <provider-name>

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

        get-help registry

LE PARAMÈTRE USETRANSACTION

Les applets de commande qui peuvent prendre en charge les transactions ont 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é seulement quand la session contient une transaction active. Si vous entrez une commande avec le paramètre UseTransaction quand il n’existe pas de transaction active, la commande échoue.

Pour rechercher les applets de commande ayant le paramètre UseTransaction, tapez :

        get-help * -parameter UseTransaction

Dans le noyau Windows PowerShell, toutes les applets de commande conçues pour fonctionner avec des fournisseurs Windows PowerShell prennent en charge les transactions. Vous pouvez donc utiliser les applets de commande du fournisseur pour gérer des transactions.

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

L’OBJET DE 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 la préférence d’annulation définie pour la transaction actuelle. Vous pouvez définir la préférence d’annulation quand vous utilisez Start-Transaction pour démarrer la transaction.

La préférence d’annulation détermine les conditions dans lesquelles la transaction est annulée automatiquement. Les valeurs valides sont Error, TerminatingError et Never. La valeur par défaut est Error.

Status :

Contient l’état actuel 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 quand vous démarrez une transaction alors qu’une autre transaction est en cours. Le nombre d’abonnés est décrémenté quand l’abonné valide la transaction.

TRANSACTIONS ACTIVES

Dans Windows PowerShell, une seule transaction est active à la fois, et vous pouvez gérer seulement la transaction active. Plusieurs transactions peuvent être en cours dans la même session en même temps, mais seule la transaction démarrée en dernier est active.

Vous ne pouvez donc pas spécifier une transaction particulière quand vous utilisez les applets de commande de transaction. Les commandes s’appliquent toujours à la transaction active.

Ceci est particulièrement évident dans le comportement de l’applet de commande Get-Transaction. Quand vous entrez une commande Get-Transaction, Get-Transaction obtient toujours un seul objet de transaction. Cet objet est l’objet qui représente la transaction active.

Pour gérer une autre transaction, vous devez d’abord terminer la transaction active, en la validant ou en l’annulant. Quand vous effectuez cette opération, la transaction précédente devient automatiquement active. Les transactions deviennent actives dans l’ordre inverse de celui où elles sont démarrées, de sorte que la transaction démarrée en dernier est toujours active.

ABONNÉS ET TRANSACTIONS INDÉPENDANTES

Si vous démarrez une transaction alors qu’une autre transaction est en cours, par défaut, Windows PowerShell ne démarre pas une nouvelle transaction. Au lieu de cela, il ajoute un « abonné » à la transaction actuelle.

Quand une transaction a plusieurs abonnés, une seule commande Undo-Transaction lancée à n’importe quel moment annule la totalité de la transaction pour tous les abonnés. Cependant, pour valider la transaction, vous devez entrer une commande Complete-Transaction pour chaque abonné.

Pour trouver le nombre d’abonnés à une transaction, consultez 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 alors qu’une autre transaction est en cours sont liées à la transaction d’origine. Dans le modèle classique, un script qui contient une transaction appelle un script d’assistance qui contient sa propre transaction. Comme les transactions sont liées, elles doivent être annulées ou validées comme une unité. Insérez le corps de la section ici.

Cependant, 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.

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

Quand la transaction indépendante est terminée (validée ou annulée), la transaction d’origine devient à nouveau la transaction active.

MODIFICATION DE DONNÉES

Quand vous utilisez des transactions pour modifier des données, les données qui sont affectées à la transaction ne sont pas modifiées tant que vous n’avez pas validé la transaction. Cependant, ces mêmes données peuvent être modifiées par des commandes qui ne font pas partie de la transaction.

Pensez-y quand 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 y travaillez, empêchant d’autres utilisateurs et d’autres commandes, scripts et fonctions, de les modifier.

Cependant, 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 dans un autre magasin de données, les données peuvent être modifiées pendant que la transaction est en cours.

EXEMPLES

Les exemples de cette section utilisent le fournisseur de Registre Windows PowerShell et supposent que vous connaissez son fonctionnement. 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 Registre HKCU : lettre_lecteur, n’est pas incluse 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 changé.

        Hive: HKEY_CURRENT_USER\Software

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

Pour valider la transaction, utilisez l’applet de commande Complete-Transaction. Comme 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 : ANNULATION 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 changé.

        Hive: HKEY_CURRENT_USER\Software

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

Pour annuler la transaction, utilisez l’applet de commande Undo-Transaction. Comme elle affecte toujours la transaction active, vous ne spécifiez pas la transaction.

        Undo-transaction

Le résultat est 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 : PRÉVISUALISATION D’UNE TRANSACTION

En règle générale, les commandes utilisées dans une transaction modifient les données. Cependant, les commandes qui obtiennent des données sont également utiles dans une transaction, car elles obtiennent des données à l’intérieur de la transaction. Ceci fournit une prévisualisation des modifications qui seraient entraînées par la validation de la transaction.

L’exemple suivant montre comment utiliser la commande Get-ChildItem (l’alias est « dir ») pour prévisualiser les modifications d’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é 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 représentant 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 se trouvent actuellement dans le Registre, utilisez une commande Get-ChildItem (« dir ») sans le paramètre UseTransaction. La commande suivante obtient les é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 prévisualiser l’effet de la validation de la transaction, entrez une commande Get-ChildItem (« dir ») avec le paramètre UseTransaction. Cette commande a une visibilité sur les données depuis l’intérieur de la transaction. Insérez ici le corps de la section.

        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 TRANSACTIONNELLES ET DE COMMANDES NON TRANSACTIONNELLES

Vous pouvez entrer des commandes non transactionnelles pendant une transaction. Les commandes non transactionnelles affectent les données immédiatement, mais elles 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. Les première et troisième commandes 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, elle prend effet immédiatement.

        new-item MyCompany1 -UseTransaction

        new-item MyCompany2

        new-item MyCompany3 -UseTransaction

Pour afficher l’état actuel du Registre, utilisez une commande Get-ChildItem (« dir ») sans le paramètre UseTransaction. Cette commande obtient les éléments qui commencent par « M ».

        dir m*

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

        Hive: HKEY_CURRENT_USER\Software

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

La commande suivante valide la transaction.

        complete-transaction

Les clés qui ont été ajoutées dans le cadre de la transaction apparaissent maintenant 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 L’ANNULATION AUTOMATIQUE

Quand une commande qui fait partie d’une transaction génère une erreur de n’importe quel type, la transaction est automatiquement annulée.

Ce comportement par défaut est conçu pour les scripts qui exécutent des transactions. Les scripts sont généralement bien testés et incluent une logique de gestion des erreurs : des erreurs ne sont donc normalement pas attendues et elles doivent 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

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

        New-Item : A key at this path already exists
        At line:1 char:9
        + new-item <<<<  MyCompany -usetx

Une commande Get-Transaction confirme que la transaction a été annulée et que le nombre d’abonnés (SubscriberCount) est de 0.

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

EXEMPLE 6 : MODIFICATION DE LA PRÉFÉRENCE D’ANNULATION

Si vous voulez que la transaction soit plus tolérante avec les erreurs, vous pouvez utiliser le paramètre RollbackPreference de Start-Transaction pour changer la préférence.

La commande suivante démarre une transaction avec une préférence d’annulation « Never ». Insérez ici le corps de la section.

         start-transaction -rollbackpreference Never

Dans ce cas, quand la commande échoue, la transaction n’est pas automatiquement annulée.

        New-Item MyCompany -UseTX

        New-Item : A key at this path already exists
        At line:1 char:9
        + new-item <<<<  MyCompany -usetx

Comme la transaction est toujours 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’utiliser dans des scripts des objets du Microsoft .NET Framework compatibles avec les transactions. Use-Transaction prend un bloc de script qui peut contenir seulement des commandes et des expressions utilisant des objets du .NET Framework compatibles avec les transactions, comme 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 effective immédiatement.

        $t.append("Windows")

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

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

Pour afficher le contenu actuel de la chaîne transactionnelle dans $t, utilisez la méthode ToString de l’objet TransactedString.

        $t.tostring()

La sortie montre que seules les modifications non transactionnelles sont effectives.

        Windows

Pour afficher le contenu actuel de la chaîne transactionnelle dans $t depuis l’intérieur de la transaction, incorporez l’expression dans une commande Use-Transaction.

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

La sortie montre la vue de la transaction.

        Windows PowerShell

La commande suivante valide la transaction.

        complete-transaction

Pour afficher la chaîne finale :

        $t.tostring()

        Windows PowerShell

EXEMPLE 7 : GESTION DES TRANSACTIONS MULTI-ABONNÉS

Quand vous démarrez une transaction alors qu’une autre transaction est en cours, Windows PowerShell ne crée pas une seconde transaction par défaut. Au lieu de cela, il ajoute un abonné à la transaction actuelle.

Cet exemple montre comment afficher et gérer une transaction multi-abonné.

Commencez par démarrer une transaction dans la clé HKCU:\Software.

        start-transaction

La commande suivante utilise l’applet de commande Get-Transaction pour obtenir la transaction active.

        get-transaction

Le résultat montre 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 l’applet de commande Start-Transaction pour démarrer une transaction. Bien que cette commande soit tapée à l’invite de commandes, ce scénario est plus susceptible de se produire quand vous exécutez un script qui contient 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 de 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 aboutit, car les deux commandes font partie de la même transaction.

La commande suivante valide la transaction. Si elle annulait la transaction, la transaction serait annulée pour tous les abonnés.

        complete-transaction

Une commande Get-Transaction montre que le nombre d’abonnés sur l’objet de transaction est de 1, mais que la valeur de Status est toujours Active (non validée).

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

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

        complete-transaction

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

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

EXEMPLE 8 : GESTION DES TRANSACTIONS INDÉPENDANTES

Quand vous démarrez une transaction alors 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.

Quand vous procédez ainsi, Start-Transaction crée un nouvel objet de transaction et fait de la nouvelle transaction la transaction active.

Commencez par démarrer une transaction dans la clé HKCU:\Software.

        start-transaction

La commande suivante utilise l’applet de commande Get-Transaction pour obtenir la transaction active.

        get-transaction

Le résultat montre 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 un abonné à la transaction active.

         start-transaction -independent

Quand vous créez une transaction indépendante, la nouvelle transaction (créée en dernier) devient la transaction active. Vous pouvez utiliser une commande Get-Transaction pour obtenir la transaction active.

        get-transaction

Notez que le nombre d’abonnés (SubscriberCount) de la transaction est de 1, indiquant qu’il n’existe 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 annulée) pour que vous puissiez 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, annulez la transaction. S’il existait une seule transaction avec deux abonnés, le fait d’annuler la transaction annulerait toute la transaction pour tous les abonnés.

Cependant, comme ces transactions sont indépendantes, l’annulation de la transaction la plus récente annule les modifications du Registre et fait de la transaction d’origine la transaction active.

        undo-transaction

Une commande Get-Transaction confirme que la transaction d’origine est toujours 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

Registre (fournisseur)

about_Providers

Get-PSProvider

Get-ChildItem