Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Vous devriez implémenter un fournisseur Windows PowerShell si votre produit ou configuration expose un ensemble de données stockées, comme une base de données que l’utilisateur souhaitera 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 pourriez vouloir implémenter un fournisseur de conteneurs PowerShell Windows si le verbe cmdlet Copier, Déplacer, Renommer, Nouveau ou Supprimer a du sens comme opération sur vos données de produit ou de configuration.
Les chemins PowerShell de Windows identifient votre fournisseur
L’exécution Windows PowerShell utilise les chemins Windows PowerShell pour accéder au fournisseur Windows PowerShell approprié. Lorsqu’un cmdlet spécifie l’un de ces chemins, l’exécution sait quel fournisseur utiliser pour accéder au magasin de données associé. Ces chemins incluent les chemins qualifiés par le conducteur, 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 PowerShell de Windows, consultez Comment fonctionne Windows PowerShell.
Définir un chemin Drive-Qualified
Pour permettre à l’utilisateur d’accéder aux données situées sur un disque physique, votre fournisseur Windows PowerShell doit prendre en charge un chemin qualifié par le disque. Ce chemin commence par le nom du disque suivi d’un deux-points (:), par exemple, mydrive :\abc\bar.
Définir un chemin Provider-Qualified
Pour permettre à l’exécution Windows PowerShell d’initialiser et de déinitialiser 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é par le fournisseur de FileSystem fourni par Windows PowerShell.
Définir un chemin Provider-Direct
Pour permettre un accès à distance à votre fournisseur Windows PowerShell, il devrait prendre en charge un chemin direct vers le fournisseur qui transmet directement au fournisseur Windows PowerShell pour la localisation actuelle. Par exemple, le fournisseur PowerShell Windows du registre peut utiliser \\server\regkeypath comme chemin direct au fournisseur.
Définir un chemin Provider-Internal
Pour permettre au cmdlet fournisseur d’accéder aux données via des interfaces de programmation d’applications (API) non PowerShell Windows, votre fournisseur PowerShell Windows doit prendre en charge un chemin interne au fournisseur. Ce chemin est indiqué après le « :: » dans le chemin qualifié par le fournisseur. Par exemple, le chemin interne du fournisseur pour le fournisseur PowerShell de Windows FileSystem est \\uncshare\abc\bar.
Modification des données stockées
Lors de la suppression des méthodes qui modifient le stockage de données sous-jacent, appelez toujours la méthode System.Management.Automation.Provider.CmdletProvider.WriteItemObject* avec la version la plus up-tode l’élément modifiée 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 récupérer l’élément le plus up-toà la date est une opération coûteuse (en termes de performance), 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 propose plusieurs 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, qui correspond le mieux à vos besoins.
Chaque classe de base de fournisseur Windows PowerShell met à disposition un ensemble de cmdlets. Cette section décrit les cmdlets, mais ne décrit pas leurs paramètres.
En utilisant l’état de session, l’exécution Windows PowerShell rend plusieurs cmdlets de localisation disponibles pour certains fournisseurs Windows PowerShell, tels que les Get-Locationcmdlets , Set-Location, Pop-Location, et Push-Location les cmdlets. Vous pouvez utiliser le Get-Help cmdlet pour obtenir des informations sur ces cmdlets de localisation.
Classe de base CmdletProvider
La classe System.Management.Automation.Provider.CmdletProvider définit un fournisseur PowerShell de base pour Windows. 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 PowerShell de Windows.
Le cours est invoqué par le Get-PSProvider cmdlet pour lister tous les prestataires disponibles pour une session.
La mise en œuvre de ce cmdlet est assurée par l’état de la session.
Note
Les fournisseurs Windows PowerShell sont disponibles pour tous les champs de portée du langage Windows PowerShell.
Classe de base DriveCmdletProvider
La classe System.Management.Automation.Provider.DriveCmdletProvider définit un fournisseur de disques Windows PowerShell qui prend en charge les opérations d’ajout de nouveaux disques, de suppression de disques existants et d’initialisation des disques par défaut. Par exemple, le fournisseur de système de fichiers fourni par Windows PowerShell initialise les lecteurs pour tous les volumes montés, tels que les disques durs et les lecteurs CD/DVD.
Cette classe dérive de la classe de base System.Management.Automation.Provider.CmdletProvider . Le tableau suivant liste les cmdlets exposés par cette classe. En plus de ceux listés, le Get-PSDrive cmdlet (exposé par l’état de la session) est un cmdlet apparenté utilisé pour récupérer les disques disponibles.
| Applet de commande | Definition |
|---|---|
New-PSDrive |
Crée un nouveau lecteur pour la session, et diffuse les informations du drive. |
Remove-PSDrive |
Ça supprime un disque de la session. |
ItemCmdletProvider Classe de base
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 stockage de données, et ne suppose aucune capacité de conteneur ou de navigation. Cette classe dérive de la classe de base System.Management.Automation.Provider.DriveCmdletProvider . Le tableau suivant liste les cmdlets exposés par cette classe.
| Applet de commande | Definition |
|---|---|
Clear-Item |
Efface le contenu actuel des éléments à l’emplacement spécifié, puis le remplace par la valeur « clear » spécifiée par le fournisseur. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre ne soit spécifié. |
Get-Item |
Récupère les objets à l’emplacement spécifié et diffuse les objets résultants. |
Invoke-Item |
Invoque l’action par défaut pour l’élément sur le chemin spécifié. |
Set-Item |
Place un élément à l’emplacement spécifié avec la valeur indiquée. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre ne soit spécifié. |
Resolve-Path |
Résout les jokers pour un chemin PowerShell Windows et diffuse les informations du chemin. |
Test-Path |
Teste le chemin spécifié, et retourne true s’il existe ou false non. Ce cmdlet est implémenté pour supporter le IsContainer paramètre de 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 conteneurs Windows PowerShell qui expose un conteneur, pour les éléments de stockage de données, à l’utilisateur. Sachez qu’un fournisseur de conteneurs Windows PowerShell ne peut être utilisé que lorsqu’il y a un conteneur (pas de conteneurs imbriqués) contenant des éléments. S’il existe des conteneurs imbriqués, alors 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 cmdlets implémentés par cette classe.
| Applet de commande | Definition |
|---|---|
Copy-Item |
Copie les objets d’un endroit à un autre. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre ne soit spécifié. |
Get-ChildItem |
Récupère les éléments enfants à l’emplacement spécifié, puis les diffuse en flux sous forme d’objets. |
New-Item |
Crée de nouveaux éléments à l’emplacement spécifié et diffuse l’objet résultant en streaming. |
Remove-Item |
Enlève les objets de l’emplacement spécifié. |
Rename-Item |
Renomme un élément à l’emplacement spécifié. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre 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 des éléments utilisant plus d’un conteneur. Cette classe dérive de la classe de base System.Management.Automation.Provider.ContainerCmdletProvider . Le tableau suivant liste les commandements exposés par cette classe.
| Applet de commande | Definition |
|---|---|
Combine-Path |
Combine deux chemins en un seul chemin, en utilisant un délimiteur spécifique au fournisseur entre les chemins. Ce cmdlet diffuse des cordes. |
Move-Item |
Déplace les objets à l’emplacement spécifié. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre ne soit spécifié. |
Un cmdlet apparenté est le cmdlet de base Parse-Path fourni par Windows PowerShell. Ce cmdlet peut être utilisé pour analyser un chemin PowerShell Windows afin de prendre en charge le Parent paramètre. Il diffuse la chaîne de chemin parent.
Sélectionnez les interfaces fournisseurs pour le support
En plus de dériver d’une des classes de base de 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 cmdlets supportés par chacune. Il ne décrit pas les paramètres des cmdlets supportés par l’interface. Les informations sur les paramètres du cmdlet sont disponibles en ligne via les Get-Command cmdlets et (et Get-Help cmdlets).
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 liste les cmdlets exposés par cette interface.
| Applet de commande | Definition |
|---|---|
Add-Content |
Ajoute les longueurs de valeur indiquées au contenu de l’élément spécifié. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre ne soit spécifié. |
Clear-Content |
Règle le contenu de l’élément spécifié à la valeur « clear ». Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre 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 par les éléments spécifiés. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre ne soit spécifié. |
IPropertyCmdletProvider
L’interface System.Management.Automation.Provider.IPropertyCmdletProvider définit une propriété du fournisseur Windows PowerShell qui effectue des opérations sur les propriétés des éléments dans le magasin de données. Le tableau suivant liste les cmdlets exposés par cette interface.
Note
Le Path paramètre sur ces cmdlets indique un chemin vers un élément au lieu d’identifier une propriété.
| Applet de commande | Definition |
|---|---|
Clear-ItemProperty |
Fixe les propriétés des éléments spécifiés à la valeur « clear ». Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre 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. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre 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 des paramètres dynamiques pour ses cmdlets pris en charge. Ce type de fournisseur gère des opérations pour lesquelles des propriétés peuvent être définies à l’exécution, par exemple une nouvelle opération de propriété. De telles opérations ne sont pas possibles sur des éléments possédant des propriétés définies statiquement. Le tableau suivant liste les cmdlets exposés par cette interface.
| Applet de commande | Definition |
|---|---|
Copy-ItemProperty |
Copie une propriété de l’élément spécifié vers un autre élément. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre ne soit spécifié. |
Move-ItemProperty |
Déplace une propriété de l’élément spécifié vers un autre élément. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre 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. Ce cmdlet ne fait pas passer un objet de sortie à travers le pipeline à moins que son PassThru paramètre 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 descriptives de sécurité pour un élément dans le magasin de données. Le tableau suivant liste les cmdlets exposés par cette interface.
| Applet de commande | Definition |
|---|---|
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 un ACL. Il prend la forme d’une instance de System.Security.AccessControl.ObjectSecurity sur l’élément ou les éléments désignés pour le chemin spécifié. Ce cmdlet peut définir des informations sur les fichiers, clés et sous-clés dans le registre, ou tout autre élément fournisseur, si le fournisseur Windows PowerShell prend en charge la configuration des informations de sécurité. |
Voir aussi
Création de fournisseurs Windows PowerShell