Recherche de site Web

Conception de votre fournisseur Windows PowerShell


Vous devez implémenter un fournisseur Windows PowerShell si votre produit ou votre configuration expose un ensemble de données stockées, telles qu'une base de données dans laquelle l'utilisateur souhaite naviguer ou parcourir. De plus, si votre produit fournit un conteneur, même s'il ne s'agit pas d'un conteneur multiniveau, il est logique d'implémenter un fournisseur Windows PowerShell. Par exemple, vous souhaiterez peut-être implémenter un fournisseur de conteneurs Windows PowerShell si le verbe d'applet de commande Copier, Déplacer, Renommer, Nouveau ou Supprimer a du sens en tant qu'opération sur votre produit ou vos données de configuration.

Les chemins Windows PowerShell identifient votre fournisseur

Le runtime Windows PowerShell utilise les chemins Windows PowerShell pour accéder au fournisseur Windows PowerShell approprié. Lorsqu'une applet de commande spécifie l'un de ces chemins, le runtime sait quel fournisseur utiliser pour accéder au magasin de données associé. Ces chemins incluent les chemins qualifiés par le lecteur, les chemins qualifiés par le fournisseur, les chemins directs par le fournisseur et les chemins internes au fournisseur. Chaque fournisseur Windows PowerShell doit prendre en charge un ou plusieurs de ces chemins.

Pour plus d’informations sur les chemins Windows PowerShell, consultez Fonctionnement de Windows PowerShell.

Définition d'un chemin qualifié par lecteur

Pour permettre à l'utilisateur d'accéder aux données situées sur un lecteur physique, votre fournisseur Windows PowerShell doit prendre en charge un chemin qualifié par lecteur. Ce chemin commence par le nom du lecteur suivi de deux points (:), par exemple, mydrive:\abc\bar.

Définir un chemin qualifié par le fournisseur

Pour permettre au runtime Windows PowerShell d'initialiser et de désinitialiser le fournisseur, votre fournisseur Windows PowerShell doit prendre en charge un chemin qualifié par le fournisseur. Par exemple, FileSystem::\\uncshare\abc\bar est le chemin qualifié du fournisseur de système de fichiers fourni par Windows PowerShell.

Définir un chemin direct vers le fournisseur

Pour autoriser l'accès à distance à votre fournisseur Windows PowerShell, celui-ci doit prendre en charge un chemin direct vers le fournisseur à transmettre directement au fournisseur Windows PowerShell pour l'emplacement actuel. Par exemple, le fournisseur de registre Windows PowerShell peut utiliser \\server\regkeypath comme chemin d'accès direct au fournisseur.

Définir un chemin interne au 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 d'accès interne au fournisseur. Ce chemin est indiqué après le « :: » dans le chemin qualifié du fournisseur. Par exemple, le chemin interne du fournisseur du système de fichiers Windows PowerShell est \\uncshare\abc\bar.

Modification des données stockées

Lorsque vous remplacez des méthodes qui modifient le magasin de données sous-jacent, appelez toujours la méthode System.Management.Automation.Provider.Cmdletprovider.Writeitemobject* avec la version la plus récente de l'élément modifié par cette méthode. L'infrastructure du fournisseur détermine si l'objet élément doit être transmis au pipeline, par exemple lorsque l'utilisateur spécifie le paramètre -PassThru. Si la récupération de l'élément le plus à jour est une opération coûteuse (en termes de performances), vous pouvez tester la propriété Context.PassThru pour déterminer si vous devez réellement écrire l'élément résultant.

Choisissez une classe de base pour votre fournisseur

Windows PowerShell fournit un certain nombre de classes de base que vous pouvez utiliser pour implémenter votre propre fournisseur Windows PowerShell. Lors de la conception d'un fournisseur, choisissez la classe de base, décrite dans cette section, la plus adaptée à vos besoins.

Chaque classe de base du fournisseur Windows PowerShell met à disposition un ensemble d'applets de commande. Cette section décrit les applets de commande, mais elle ne décrit pas leurs paramètres.

À l'aide de l'état de session, le runtime Windows PowerShell met plusieurs applets de commande d'emplacement à la disposition de certains fournisseurs Windows PowerShell, tels que Get-Location, Set-Location, Pop- Applets de commande Location et Push-Location. Vous pouvez utiliser l'applet de commande Get-Help pour obtenir des informations sur ces applets de commande d'emplacement.

Classe de base CmdletProvider

La classe System.Management.Automation.Provider.Cmdletprovider définit un fournisseur Windows PowerShell de base. Cette classe prend en charge la déclaration du fournisseur et fournit un certain nombre de propriétés et de méthodes disponibles pour tous les fournisseurs Windows PowerShell. La classe est appelée par l'applet de commande Get-PSProvider pour répertorier tous les fournisseurs disponibles pour une session. L'implémentation de cette applet de commande est fournie par l'état de la session.

Note

Les fournisseurs Windows PowerShell sont disponibles pour toutes les étendues de langage Windows PowerShell.

Classe de base DriveCmdletProvider

La classe System.Management.Automation.Provider.Drivecmdletprovider définit un fournisseur de lecteurs Windows PowerShell qui prend en charge les opérations d'ajout de nouveaux lecteurs, de suppression de lecteurs existants et d'initialisation des lecteurs par défaut. Par exemple, le fournisseur FileSystem fourni par Windows PowerShell initialise les lecteurs de tous les volumes montés, tels que les disques durs et les lecteurs de périphériques CD/DVD.

Cette classe dérive de la classe de base System.Management.Automation.Provider.Cmdletprovider. Le tableau suivant répertorie les applets de commande exposées par cette classe. En plus de celles répertoriées, la cmdlet Get-PSDrive (exposée par état de session) est une applet de commande associée utilisée pour récupérer les lecteurs disponibles.

New-PSDrive

Crée un nouveau lecteur pour la session et diffuse les informations sur le lecteur.

Remove-PSDrive

Supprime un lecteur de la session.

Classe de base ItemCmdletProvider

La classe System.Management.Automation.Provider.Itemcmdletprovider définit un fournisseur d'éléments Windows PowerShell qui effectue des opérations sur les éléments individuels du magasin de données et ne suppose aucune fonctionnalité de conteneur ou de navigation. Cette classe dérive de la classe de base System.Management.Automation.Provider.Drivecmdletprovider. Le tableau suivant répertorie les applets de commande exposées par cette classe.

Clear-Item

Efface le contenu actuel des éléments à l'emplacement spécifié et le remplace par la valeur « clear » spécifiée par le fournisseur. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

Get-Item

Récupère les éléments de l’emplacement spécifié et diffuse les objets résultants.

Invoke-Item

Appelle l'action par défaut pour l'élément au chemin spécifié.

Set-Item

Définit un élément à l'emplacement spécifié avec la valeur indiquée. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

Resolve-Path

Résout les caractères génériques pour un chemin Windows PowerShell et diffuse les informations sur le chemin.

Test-Path

Teste le chemin spécifié et renvoie true s'il existe et false sinon. Cette applet de commande est implémentée pour prendre en charge le paramètre IsContainer pour la méthode System.Management.Automation.Provider.Cmdletprovider.Writeitemobject*.

Classe de base ContainerCmdletProvider

La classe System.Management.Automation.Provider.Containercmdletprovider définit un fournisseur de conteneur Windows PowerShell qui expose un conteneur, pour les éléments du magasin de données, à l'utilisateur. Sachez qu'un fournisseur de conteneurs Windows PowerShell ne peut être utilisé que lorsqu'il existe un seul conteneur (pas de conteneurs imbriqués) contenant des éléments. S'il existe des conteneurs imbriqués, vous devez implémenter un fournisseur de navigation Windows PowerShell.

Cette classe dérive de la classe de base System.Management.Automation.Provider.Itemcmdletprovider. Le tableau suivant définit les applets de commande implémentées par cette classe.

Copy-Item

Copie les éléments d'un emplacement à un autre. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

Get-Childitem

Récupère les éléments enfants à l’emplacement spécifié et les diffuse en tant qu’objets.

New-Item

Crée de nouveaux éléments à l'emplacement spécifié et diffuse l'objet résultant.

Remove-Item

Supprime les éléments de l'emplacement spécifié.

Rename-Item

Renomme un élément à l'emplacement spécifié. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

Classe de base NavigationCmdletProvider

La classe System.Management.Automation.Provider.Navigationcmdletprovider définit un fournisseur de navigation Windows PowerShell qui effectue des opérations pour les éléments qui utilisent plusieurs conteneurs. Cette classe dérive de la classe de base System.Management.Automation.Provider.Containercmdletprovider. Le tableau suivant répertorie les applets de commande exposées par cette classe.

Combine-Path

Combine deux chemins en un seul chemin, en utilisant un délimiteur spécifique au fournisseur entre les chemins. Cette applet de commande diffuse des chaînes.

Move-Item

Déplace les éléments vers l'emplacement spécifié. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

Une applet de commande associée est l'applet de commande Parse-Path de base fournie par Windows PowerShell. Cette applet de commande peut être utilisée pour analyser un chemin Windows PowerShell afin de prendre en charge le paramètre Parent. Il diffuse la chaîne du chemin parent.

Sélectionnez les interfaces du fournisseur à prendre en charge

En plus de dériver de l'une des classes de base Windows PowerShell, votre fournisseur Windows PowerShell peut prendre en charge d'autres fonctionnalités en dérivant d'une ou plusieurs des interfaces de fournisseur suivantes. Cette section définit ces interfaces et les applets de commande prises en charge par chacune. Il ne décrit pas les paramètres des applets de commande prises en charge par l'interface. Les informations sur les paramètres des applets de commande sont disponibles en ligne à l'aide des applets de commande Get-Command et Get-Help.

IContentCmdletProvider

L'interface System.Management.Automation.Provider.Icontentcmdletprovider définit un fournisseur de contenu qui effectue des opérations sur le contenu d'un élément de données. Le tableau suivant répertorie les applets de commande exposées par cette interface.

Add-Content

Ajoute les longueurs de valeur indiquées au contenu de l’élément spécifié. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

Clear-Content

Définit le contenu de l'élément spécifié sur la valeur "clear". Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

Get-Content

Récupère le contenu des éléments spécifiés et diffuse les objets résultants.

Set-Content

Remplace le contenu existant pour les éléments spécifiés. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

IPropertyCmdletProvider

L'interface System.Management.Automation.Provider.Ipropertycmdletprovider définit un fournisseur Windows PowerShell de propriété qui effectue des opérations sur les propriétés des éléments du magasin de données. Le tableau suivant répertorie les applets de commande exposées par cette interface.

Note

Le paramètre Path sur ces applets de commande indique un chemin d'accès à un élément au lieu d'identifier une propriété.

Clear-ItemProperty

Définit les propriétés des éléments spécifiés sur la valeur « clear ». Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

Get-ItemProperty

Récupère les propriétés des éléments spécifiés et diffuse les objets résultants.

Set-ItemProperty

Définit les propriétés des éléments spécifiés avec les valeurs indiquées. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

IDynamicPropertyCmdletProvider

L'interface System.Management.Automation.Provider.Idynamicpropertycmdletprovider, dérivée de System.Management.Automation.Provider.Ipropertycmdletprovider, définit un fournisseur qui spécifie les paramètres dynamiques pour ses applets de commande prises en charge. Ce type de fournisseur gère les opérations pour lesquelles les propriétés peuvent être définies au moment de l'exécution, par exemple une nouvelle opération de propriété. De telles opérations ne sont pas possibles sur des éléments ayant des propriétés définies statiquement. Le tableau suivant répertorie les applets de commande exposées par cette interface.

Copy-ItemProperty

Copie une propriété de l'élément spécifié vers un autre élément. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

Move-ItemProperty

Déplace une propriété de l'élément spécifié vers un autre élément. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

New-ItemProperty

Crée une propriété sur les éléments spécifiés et diffuse les objets résultants.

Remove-ItemProperty

Supprime une propriété pour les éléments spécifiés.

Rename-ItemProperty

Renomme une propriété des éléments spécifiés. Cette applet de commande ne transmet pas d'objet de sortie via le pipeline à moins que son paramètre PassThru ne soit spécifié.

ISecurityDescriptorCmdletProvider

L'interface System.Management.Automation.Provider.Isecuritydescriptorcmdletprovider ajoute une fonctionnalité de descripteur de sécurité à un fournisseur. Cette interface permet à l'utilisateur d'obtenir et de définir des informations de descripteur de sécurité pour un élément du magasin de données. Le tableau suivant répertorie les applets de commande exposées par cette interface.

Get-Acl

Récupère les informations contenues dans une liste de contrôle d'accès (ACL), qui fait partie d'un descripteur de sécurité utilisé pour protéger les ressources du système d'exploitation, par exemple un fichier ou un objet.

Set-Acl

Définit les informations pour une ACL. Il se présente sous la forme d'une instance de System.Security.Accesscontrol.Objectsecurity sur le ou les éléments désignés pour le chemin spécifié. Cette applet de commande peut définir des informations sur les fichiers, les clés et les sous-clés du registre, ou sur tout autre élément du fournisseur, si le fournisseur Windows PowerShell prend en charge la définition des informations de sécurité.

Voir aussi

Création de fournisseurs Windows PowerShell

Comment fonctionne Windows PowerShell

Kit de développement logiciel Windows PowerShell

Articles connexes