Un peu d’arrière-plan important: ma société dispose d’un script de connexion générique VBS qui modifie la variable d’environnement PATH lors de la connexion et me permet d’exécuter un logiciel dépendant de fichiers partagés DFS. J'ai également récemment installé le Kit de développement logiciel (SDK) Windows Powershell sur ma machine Windows 7 Enterprise et tenté de modifier ma variable d'environnement PATH à partir de la ligne de commande Powershell.
Par la suite, j'ai constaté que je ne pouvais plus exécuter les applications correspondant à ces modifications de connexion PATH et que l'éditeur de variable d'environnement PATH était défini sur autre chose que ce qui était affiché lorsque j'ai lancé une 'echo %PATH%'
invite de commande.
Ainsi, par exemple (simplification), à partir de l'éditeur de variable d'environnement ( My Computer properties -> Advanced System Settings -> Environment Variables
), j'avais
C:\MyDir\; C:\MyOtherDir
alors que quand je l'ai fait à 'echo %PATH%'
partir d'une invite de commande, j'ai eu:
C:\MyDir\
Quelqu'un d'autre a-t-il eu un problème similaire et une solution a-t-elle été trouvée? Quand j'ai cherché de l'aide sur Google, je suis tombé sur ceci:
(En rapport?) Fil StackOverflow
Je me suis dit que si le script de connexion avait été lancé par quelque chose d'autre que mon environnement Explorer.exe, c'était le problème. Cependant, lorsque j'ai exécuté le script de connexion moi-même, mon invite PATH à partir de l'invite de commande était inchangé. Qu'est-ce que cela aurait à voir avec PowerShell? Il me manque comment cela est connecté à cette installation complètement.
la source
Réponses:
Windows comporte deux classes de variables d' environnement, variables d'environnement système et variables d'environnement utilisateur . Si vous utilisez,
echo %PATH%
vous verrez votre variable d'environnement utilisateurPATH
. Seulement si aucune variable utilisateur n'est définie, la variable système sera effective pour les processus utilisateur.Le
PATH
séparateur;
ne doit pas être suivi d'un blanc.La note Microsoft suivante peut être utile:
Vous pouvez modifier les variables d'environnement utilisateur en modifiant la clé de registre suivante:
Vous pouvez modifier les variables d'environnement du système en modifiant la clé de registre suivante:
Notez que toute variable d'environnement devant être développée (par exemple, lorsque vous utilisez
%SYSTEM%
) doit être stockée dans le registre en tant queREG_EXPAND_SZ
valeur de registre. Aucune valeur de typeREG_SZ
ne sera développée lorsqu’elle sera lue à partir du registre.Remarque supplémentaire: chaque fois qu'un processus modifie son environnement (plutôt que les paramètres de registre qui définissent l'environnement pour les nouveaux processus), les modifications ne sont visibles que pour les processus enfants.
la source
tmp
ettemp
. Etes-vous sûr que c'est le chemin pour l'utilisateur, qui devrait être modifié?