Aller au contenuAller à l'arborescence
  1. C:
  2. Program Files
  3. 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.

Mis à jour le Par AltF4 Formation

À 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 dans Documents\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-Module puis 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

Fenêtre de terminal
# Modules installés par PowerShellGet
Get-InstalledModule
# Modules présents dans ce dossier
Get-Module -ListAvailable | Where-Object Path -like 'C:\Program Files\WindowsPowerShell\Modules*' | Select-Object Name, Version
# Préparer un module pour un serveur hors ligne
Save-Module -Name Pester -Path C:\Temp\Modules
# Désinstaller toutes les versions d'un module (en administrateur)
Uninstall-Module -Name Pester -AllVersions -WhatIf

Signaler une erreur