Aller au contenuAller à l'arborescence
  1. C:
  2. Windows
  3. System32
  4. WindowsPowerShell\v1.0
DossierRisque : Ne pas toucher

WindowsPowerShell\v1.0 C:\Windows\System32\WindowsPowerShell\v1.0

Dossier de Windows PowerShell 5.1 ($PSHOME) : powershell.exe, ISE, modules intégrés, profils « tous les utilisateurs » ; le « 1.0 » est historique.

Mis à jour le Par AltF4 Formation

À quoi ça sert

Dossier de Windows PowerShell 5.1, la version intégrée à Windows : la variable $PSHOME y pointe. Le « v1.0 » date de la première version et n’a pas changé depuis, ce qui surprend sur un 5.1. PowerShell 7 est une installation à part, dans C:\Program Files\PowerShell\7, avec son propre $PSHOME.

Ce qu’il contient

  • powershell.exe et powershell_ise.exe, les fichiers de types et de formats (*.types.ps1xml, *.format.ps1xml) et l’aide.
  • Le sous-dossier Modules : les modules intégrés et ceux des rôles et fonctionnalités (ActiveDirectory, Hyper-V, DnsServer, DhcpServer…).
  • Les profils « tous les utilisateurs » : profile.ps1 (tous les hôtes) et Microsoft.PowerShell_profile.ps1 (hôte console). Ils n’existent pas par défaut ; les créer pour tous les utilisateurs de la machine se fait ici.

Risques et bonnes pratiques

  • Les fichiers appartiennent à TrustedInstaller et sont servis par Windows Update : ne les modifiez pas, un script qui s’y copie sera écrasé à une mise à jour.
  • Un profile.ps1 global s’exécute pour tous les comptes, y compris les scripts planifiés : une erreur dedans casse des tâches ailleurs. Pour une personnalisation, préférez le profil de l’utilisateur ($PROFILE) ou un module.
  • Pour installer vos propres modules, utilisez C:\Program Files\WindowsPowerShell\Modules, pas le dossier Modules d’ici.
  • $env:PSModulePath combine trois dossiers par défaut : le profil utilisateur, Program Files et $PSHOME\Modules.

Commandes utiles

Fenêtre de terminal
# Dossier d'installation et version du moteur en cours
$PSHOME
$PSVersionTable.PSVersion
# Chemins des profils (existants ou non)
$PROFILE | Select-Object *
# Dossiers de modules pris en compte
$env:PSModulePath -split ';'

Contenu du dossier

Signaler une erreur