DossierRisque : Ne pas toucher
Modules C:\Windows\System32\WindowsPowerShell\v1.0\Modules
Modules PowerShell livrés avec Windows (Management, Utility, Security...) et ceux des rôles et RSAT (ActiveDirectory, Hyper-V, DnsServer) ; $PSHOME\Modules.
À quoi ça sert
Modules de Windows PowerShell 5.1 installés avec le système, dans $PSHOME\Modules. Quand vous installez un rôle ou une fonctionnalité (ou les outils RSAT), son module arrive ici : ActiveDirectory, Hyper-V, DnsServer, DhcpServer, NetTCPIP, Storage… C’est le dernier dossier de $env:PSModulePath pour Windows PowerShell, après le profil utilisateur et Program Files.
Ce qu’il contient
- Un sous-dossier par module (
Microsoft.PowerShell.Management,Microsoft.PowerShell.Utility,Microsoft.PowerShell.Security…), chacun avec un manifeste.psd1et son module. - Les modules des rôles et fonctionnalités actifs sur la machine : leur présence indique si le rôle ou les RSAT sont installés.
Risques et bonnes pratiques
- N’y déposez pas vos propres modules : le dossier appartient à Windows et se met à jour avec lui. Placez-les dans
C:\Program Files\WindowsPowerShell\Modules, ou dans le profil de l’utilisateur. - Un module absent alors que la fonctionnalité est installée se règle avec l’ajout de la fonctionnalité (
Install-WindowsFeaturesur serveur,Add-WindowsCapabilitypour les RSAT sur client), pas en copiant des fichiers. - PowerShell 7 lit ce dossier pour la compatibilité, mais certains modules Windows PowerShell doivent être chargés via la couche de compatibilité.
Commandes utiles
# Modules livrés avec le système (hors modules installés par vos soins)Get-Module -ListAvailable | Where-Object ModuleBase -like "$PSHOME\Modules*" | Select-Object Name, Version
# Un module de rôle est-il présent ?Get-Module -ListAvailable ActiveDirectory
# Rôle ou fonctionnalité manquants (Windows Server)Get-WindowsFeature RSAT-AD-PowerShell