Vue d’ensemble du fournisseur Windows PowerShell
Un fournisseur Windows PowerShell permet à tout magasin de données d’être exposé comme un système de fichiers comme s’il s’agissait d’un lecteur monté. Par exemple, le fournisseur de Registre intégré vous permet de naviguer dans le Registre comme vous le feriez pour parcourir le lecteur c
de votre ordinateur. Un fournisseur peut également remplacer les applets de commande Item
(par exemple, Get-Item
, Set-Item
, etc.) afin que les données de votre magasin de données puissent être traitées comme des fichiers et des répertoires lors de la navigation dans un système de fichiers. Pour plus d’informations sur les fournisseurs et les lecteurs, ainsi que sur les fournisseurs intégrés dans Windows PowerShell, consultez about_Providers.
Fournisseurs et lecteurs
Un fournisseur définit la logique utilisée pour accéder, naviguer et modifier un magasin de données, tandis qu’un lecteur spécifie un point d’entrée spécifique vers un magasin de données (ou une partie d’un magasin de données) qui est du type défini par le fournisseur. Par exemple, le fournisseur de Registre vous permet d’accéder aux ruches et clés d’un registre, et les lecteurs HKLM et HKCU spécifient les ruches correspondantes dans le Registre. Les lecteurs HKLM et HKCU utilisent tous deux le fournisseur de Registre.
Lorsque vous écrivez un fournisseur, vous pouvez spécifier les lecteurs par défaut créés automatiquement lorsque le fournisseur est disponible. Vous définissez également une méthode pour créer des lecteurs qui utilisent ce fournisseur.
Type de fournisseurs
Il existe plusieurs types de fournisseurs, chacun offrant un niveau de fonctionnalité différent. Un fournisseur est implémenté en tant que classe qui dérive de l’un des descendants de la classe System.Management.Automation.SessionStateCategoryCmdletProvider. Pour plus d’informations sur les différents types de fournisseurs, consultez types de fournisseurs.
Applets de commande de fournisseur
Les fournisseurs peuvent implémenter des méthodes qui correspondent aux applets de commande, en créant des comportements personnalisés pour ces applets de commande lorsqu’elles sont utilisées dans un lecteur pour ce fournisseur. Selon le type de fournisseur, différents ensembles d’applets de commande sont disponibles. Pour obtenir la liste complète des applets de commande disponibles pour la personnalisation dans les fournisseurs, consultez applets de commande du fournisseur.
Chemins d’accès du fournisseur
Les utilisateurs naviguent sur des lecteurs de fournisseurs comme les systèmes de fichiers. En raison de cela, ils s’attendent à ce que la syntaxe des chemins corresponde aux chemins utilisés dans la navigation dans le système de fichiers. Lorsqu’un utilisateur exécute une applet de commande de fournisseur, il spécifie un chemin d’accès à l’élément à accéder. Le chemin spécifié peut être interprété de plusieurs façons. Un fournisseur doit prendre en charge un ou plusieurs des types de chemins suivants.
Chemins qualifiés de lecteur
Un chemin qualifié de lecteur est une combinaison du nom de l’élément, du conteneur et des sous-conteneurs dans lesquels se trouve l’élément et du lecteur Windows PowerShell via lequel l’élément est accessible. (Les lecteurs sont définis par le fournisseur utilisé pour accéder au magasin de données. Ce chemin commence par le nom du lecteur suivi d’un signe deux-points (:). Par exemple : Get-ChildItem C:
Chemins d’accès qualifiés par le fournisseur
Pour permettre au moteur Windows PowerShell d’initialiser et d’annuler l’initialisation de votre fournisseur, le fournisseur doit prendre en charge un chemin qualifié par le fournisseur. Par exemple, l’utilisateur peut initialiser et annuler l’initialisation du fournisseur FileSystem, car il définit le chemin d’accès qualifié du fournisseur suivant : FileSystem::\\uncshare\abc\bar
.
Chemins d’accès directs du fournisseur
Pour autoriser l’accès à distance à votre fournisseur Windows PowerShell, il doit prendre en charge un chemin d’accès direct du fournisseur pour passer directement au fournisseur Windows PowerShell pour l’emplacement actuel. Par exemple, le fournisseur Windows PowerShell du Registre peut utiliser \\server\regkeypath
en tant que chemin direct du fournisseur.
Chemins internes du fournisseur
Pour permettre à l’applet de commande du fournisseur d’accéder aux données à l’aide d’interfaces de programmation d’applications (API) non-Windows PowerShell, votre fournisseur Windows PowerShell doit prendre en charge un chemin interne du fournisseur. Ce chemin d’accès est indiqué après le « : : » dans le chemin qualifié par le fournisseur. Par exemple, le chemin interne du fournisseur pour le fournisseur Windows PowerShell fileSystem est \\uncshare\abc\bar
.
Substitution des paramètres d’applet de commande
Le comportement de certaines applets de commande spécifiques au fournisseur peut être remplacé par un fournisseur. Pour obtenir la liste des paramètres qui peuvent être substitués et comment les remplacer dans votre classe de fournisseur, consultez paramètres d’applet de commande fournisseur
Paramètres dynamiques
Les fournisseurs peuvent définir des paramètres dynamiques ajoutés à une applet de commande de fournisseur lorsque l’utilisateur spécifie une certaine valeur pour l’un des paramètres statiques de l’applet de commande. Un fournisseur effectue cette opération en implémentant une ou plusieurs méthodes de paramètres dynamiques. Pour obtenir la liste des paramètres d’applet de commande qui peuvent être utilisés pour ajouter un paramètre dynamique et les méthodes utilisées pour les implémenter, consultez paramètres dynamiques de l’applet de commande fournisseur.
Fonctionnalités du fournisseur
La System.Management.Automation.Provider.ProviderCapabilities énumération définit un certain nombre de fonctionnalités que les fournisseurs peuvent prendre en charge. Il s’agit notamment de la possibilité d’utiliser des caractères génériques, des éléments de filtre et de prendre en charge les transactions. Pour spécifier des fonctionnalités pour un fournisseur, ajoutez une liste de valeurs de la System.Management.Automation.Provider.ProviderCapabilities énumération, combiné à une opération de OR
logique, en tant que propriété System.Management.Automation.Provider.CmdletProviderAttribute.ProviderCapabilities* (deuxième paramètre de l’attribut) de l’attribut System.Management.Automation.Provider.CmdletProviderAttribute pour votre classe de fournisseur. Par exemple, l’attribut suivant spécifie que le fournisseur prend en charge les fonctionnalités System.Management.Automation.Provider.ProviderCapabilitiesShouldProcess et System.Management.Automation.Provider.ProviderCapabilitiesTransactions.
[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]
Aide de l’applet de commande du fournisseur
Lors de l’écriture d’un fournisseur, vous pouvez implémenter votre propre aide pour les applets de commande du fournisseur que vous prenez en charge. Cela inclut une rubrique d’aide unique pour chaque applet de commande fournisseur ou plusieurs versions d’une rubrique d’aide pour les cas où l’applet de commande du fournisseur agit différemment en fonction de l’utilisation de paramètres dynamiques. Pour prendre en charge l’aide spécifique à l’applet de commande du fournisseur, votre fournisseur doit implémenter l’interface System.Management.Automation.Provider.ICmdletProviderSupportsHelp.
Le moteur Windows PowerShell appelle la méthode System.Management.Automation.Provider.ICmdletProviderSupportsHelp.GetHelpMaml* pour afficher la rubrique d’aide pour les applets de commande de votre fournisseur. Le moteur fournit le nom de l’applet de commande spécifiée par l’utilisateur lors de l’exécution de l’applet de commande Get-Help
et du chemin d’accès actuel de l’utilisateur.
Le chemin actuel est requis si votre fournisseur implémente différentes versions de la même applet de commande de fournisseur pour différents lecteurs. La méthode doit retourner une chaîne qui contient le code XML de l’aide de l’applet de commande.
Le contenu du fichier d’aide est écrit à l’aide de PSMAML XML. Il s’agit du même schéma XML que celui utilisé pour écrire du contenu d’aide pour les applets de commande autonomes. Ajoutez le contenu de l’aide de votre applet de commande personnalisée au fichier d’aide de votre fournisseur sous l’élément CmdletHelpPaths
. L’exemple suivant montre l’élément command
pour une applet de commande de fournisseur unique et montre comment vous spécifiez le nom de l’applet de commande du fournisseur que votre fournisseur. Soutient
<CmdletHelpPaths>
<command:command>
<command:details>
<command:name>ProviderCmdletName</command:name>
<command:verb>Verb</command:verb>
<command:noun>Noun</command:noun>
<command:details>
</command:command>
<CmdletHelpPath>
Voir aussi
fonctionnalités du fournisseur Windows PowerShell