Pour compléter les autres réponses, vous pouvez vous assurer que vous n'ajoutez pas de jointures superflues en filtrant au cas où l'utilisateur a un chemin vide.
$env:Path=(
[System.Environment]::GetEnvironmentVariable("Path","Machine"),
[System.Environment]::GetEnvironmentVariable("Path","User")
) -match '.' -join ';'
Ou, plus utilement, si vous exécutez un script qui ajoute à une ou plusieurs variables d'environnement, utilisez une fonction pour toutes les réinitialiser.
function resetEnv {
Set-Item `
-Path (('Env:', $args[0]) -join '') `
-Value ((
[System.Environment]::GetEnvironmentVariable($args[0], "Machine"),
[System.Environment]::GetEnvironmentVariable($args[0], "User")
) -match '.' -join ';')
}
resetEnv Path
resetEnv AppPath