Guide : Modifier la variable d’environnement PSModulePath avec PowerShell sur Windows Server
Lors de l’installation d’un nouveau Serveur d’administration, j’ai eu besoin de modifier la variable d’environnement PSModulePath car sur notre ancienne machine, un collégue avait ecrit des modules utilisé par plusiurs script PowerShell.
La première solution de modification « Temporaire » pour la session active est la commande suivante
1 2 3 |
$Env:PSModulePath = $Env:PSModulePath+";PathModulesPerso\Modules" |
La seconde solution qui rends permanent ce changement c’est la modification de la clef de registre conservant cette information.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
Et en Powershell, vous pouvez donc modifier cette clef de registre avec les commandes suivante :
1 2 3 4 5 6 7 8 9 10 11 12 |
$originalpaths = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PSModulePath).PSModulePath # Ajoutez votre nouveau chemin ci-dessous après le ; $newPath=$originalpaths+';D:\Users\monUser\xxxxxx\PowerShell\' Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PSModulePath –Value $newPath |
Source : https://tomtalks.blog/powershell-add-a-persistent-module-path-to-envpsmodulepath/
Pour que la modification de la variable d’environnement soit pris en compte, il m’a été necessaire de rebooter le serveur.