Les fournisseurs
Introduction
Windows PowerShell, en tant qu’environnement en ligne de commande et langage de script, est un moyen puissant permettant d’accéder à un certain nombre d’informations d’une importance plus ou moins élevée. Ces informations sont accessibles de diverses façons, car tout simplement, elles reposent sur des modèles de développement multiples. Qu’il s’agisse de WMI (Windows Management Instrumentation), COM (Component Object Model) ou même de technologies utilisant le langage SQL (Structured Query Language), l’accès direct aux informations peut se révéler ardu pour un administrateur dont la programmation de ces technologies n’est pas le métier.
Pour cette raison, comme PowerShell a été pensé d’abord pour les administrateurs et les ingénieurs système et réseau, accéder à ces informations y est plus aisé. Sur un plan technique, le mécanisme central dont il est question ici est celui des fournisseurs, dont l’existence dans l’environnement de Windows PowerShell facilite l’accès à des informations essentielles issues de sources nombreuses.
Nous définirons dans ce chapitre ce que recouvre la notion de fournisseurs dont la compréhension est indispensable pour ensuite mieux cerner ce qui permet leur utilisation, à...
Qu’est-ce qu’un fournisseur Windows PowerShell ?
Un fournisseur Windows PowerShell est un programme .NET facilitant l’accès à un magasin de données, et ce d’une manière cohérente et ordonnée. Les données exposées par un fournisseur Windows PowerShell sont disposées grâce à un lecteur, et l’utilisateur peut les parcourir comme s’il parcourait, par exemple, les données issues d’un système de fichiers.
L’objectif de la conjugaison de ces principes est de faciliter la lecture et l’écriture de données, mais en proposant des modes d’accès homogènes (utilisation de commandes et d’éléments de langage). Donc, face à des magasins de données différents, l’approche fournie par Windows PowerShell est quant à elle unifiée. Voici une liste de fournisseurs natifs de l’environnement Windows PowerShell :
Fournisseur |
Description |
Alias |
Permet d’accéder aux alias. |
Certificate |
Il s’agit des certificats X509 pour les signatures. |
Environment |
Permet d’accéder aux variables d’environnement. |
FileSystem |
Permet d’accéder aux répertoires et aux fichiers du système d’exploitation. |
Function |
Permet d’accéder aux fonctions Windows PowerShell. |
Registry |
Permet d’accéder à la base de registre. |
Variable |
Permet d’accéder aux variables Windows PowerShell. |
WSMan |
Permet d’accéder aux informations de configuration WS-Management. |
Tableau 4-1. Fournisseurs existant dans Windows PowerShell
Pour visualiser l’ensemble des fournisseurs existant dans une session Windows PowerShell, il faut utiliser la cmdlet Get-PSProvider, sans paramètres :
PS> Get-PSProvider
Name Capabilities Drives
---- ------------ ------
Alias ShouldProcess {Alias}
Environment ShouldProcess {Env} ...
Les PSDrives
Le mot PSDrive est un terme technique désignant le lecteur, tel que mentionné précédemment. Les PSDrives ont un comportement similaire aux lecteurs de systèmes de fichiers que l’on peut rencontrer traditionnellement dans d’autres environnements (Windows Command Prompt, Korn Shell, etc.). Un PSDrive est rattaché à un fournisseur, et celui-ci n’est accessible que par le biais d’un PSDrive.
L’existence des PSDrives remonte au commencement de Windows PowerShell ; plus que cela, le principe de fonctionnement des PSDrives fut un des premiers principes essentiels participant à l’écosystème de Windows PowerShell : tout magasin de données doit pouvoir être accessible de manière extrêmement cohérente et homogène.
Dans la section précédente, la sortie produite par la cmdlet Get-PSProvider a mis en évidence une colonne nommée Drives. La colonne Drives, comme l’indique son nom, liste les lecteurs disponibles dans la session active. Il s’agit là d’informations sur la relation fournisseur-lecteur, mais un niveau supplémentaire en la matière peut être franchi grâce à la cmdlet Get-PSDrive :
PS> Get-PSDrive
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
Alias Alias
C 244,52 660,39 FileSystem C:\
Cert Certificate \
D FileSystem D:\
Env Environment
F 722,20 209,28 FileSystem F:\
Function Function
G 2,60 FileSystem G:\
HKCU Registry HKEY_CURRENT_USER
HKLM...