- C:
- Program Files
- WindowsPowerShell\Modules
DossierRisque : Prudence
WindowsPowerShell\Modules C:\Program Files\WindowsPowerShell\Modules
Modules PowerShell installés pour tous les utilisateurs (Install-Module -Scope AllUsers) ; emplacement recommandé pour vos propres modules Windows PowerShell.
À quoi ça sert
Modules PowerShell installés pour tous les utilisateurs de la machine. Install-Module -Scope AllUsers y dépose le module, et c’est l’endroit recommandé pour y copier vos propres modules d’entreprise : le chemin est dans $env:PSModulePath de Windows PowerShell comme de PowerShell 7, sans toucher aux dossiers de Windows.
Ce qu’il contient
- Un dossier par module et, dedans, un dossier par version (
<Module>\<Version>\<Module>.psd1), ce qui permet d’en garder plusieurs côte à côte. - Les modules installés depuis la PowerShell Gallery ou un dépôt interne, ou copiés à la main.
- Les modules de l’utilisateur (
-Scope CurrentUser) ne sont pas ici : ils vont dansDocuments\WindowsPowerShell\Modules.
Risques et bonnes pratiques
- Un module d’ici s’exécute avec les droits de celui qui l’importe : sur un serveur, limitez l’écriture aux administrateurs, ce qui est le cas par défaut, et signez les modules internes.
- Sur un serveur sans accès à Internet, récupérez le module sur un poste connecté avec
Save-Modulepuis copiez le dossier ici, en respectant l’arborescence version. - Gardez la liste de ce qui est installé (
Get-InstalledModule) : une mise à jour peut introduire une version qui casse un script ; épinglez la version avec-RequiredVersion.
Commandes utiles
# Modules installés par PowerShellGetGet-InstalledModule
# Modules présents dans ce dossierGet-Module -ListAvailable | Where-Object Path -like 'C:\Program Files\WindowsPowerShell\Modules*' | Select-Object Name, Version
# Préparer un module pour un serveur hors ligneSave-Module -Name Pester -Path C:\Temp\Modules
# Désinstaller toutes les versions d'un module (en administrateur)Uninstall-Module -Name Pester -AllVersions -WhatIf