Les variables PATH et d'environnement de Windows 7 sont corrompues

97

Je n'ai aucune idée, mais dernièrement, j'ai ce problème. Après avoir exécuté mon poste de travail, quelque chose détruit soudainement PATH et beaucoup de choses ne fonctionnent plus. Initialement, mon chemin comportait BEAUCOUP de répertoires (j'utilise Windows 7 comme boîte de développement) et, après un certain temps, il ne restait que 3 ou 4 répertoires dans mon chemin.

Je ne peux même pas ouvrir la boîte de dialogue Propriétés système où je peux voir les variables d'environnement (parce qu'il utilise des variables shell pour le démarrer et que cela ne fonctionne pas). En bref, je redémarre à chaque fois.

Des idées qui pourraient causer ce problème? Je n'ai rien couru de nouveau / inhabituel ces derniers temps. Seulement VmWare (mais je l'utilisais dans le passé et je n'avais pas ce problème à l'époque).

Je viens de vérifier, même %WINDIR%n'est pas défini. WTF?!

Pavel P
la source
2
J'ai récemment eu le même problème sur ma boîte Vista 64 bits. Sans cause évidente, si j'ouvre une nouvelle invite de commande, la variable de chemin d'accès est définie sur la partie du chemin d'accès définie dans "Variables utilisateur". La partie "Variables système" du chemin est manquante. Certaines variables système, mais pas toutes, ne sont pas définies. Le registre semble correct et tout semble correct dans la boîte de dialogue Propriétés système (à l'aide de "c: \ windows \ system32 \ systempropertiesadvanced.exe"). Après le redémarrage, le système fonctionne normalement. Le problème se reproduit tous les deux ou trois jours. Une analyse de virus complète n'a rien trouvé.
Lee
J'ai eu le même problème. J'ai trouvé quelques facteurs différents qui l'ont déclenché (exécution de certains programmes, programmes d'installation, etc.), mais aucune raison pour que cela soit la cause (ils fonctionnent correctement sur d'autres machines ou sur une machine virtuelle.) J'ai fini par rencontrer d'autres problèmes, ce qui compliquait la nécessité de réinstaller qui a tout arrangé.
Jim McKeeth
4
mon chemin était trop long. J'ai supprimé les doublons, supprimé les entrées inutiles et le problème a disparu.
Pavel P

Réponses:

127

De mon blog

En bout de ligne, si votre variable d'environnement PATH contient plus de 2048 caractères, elle (et WINDIR) cesse d'être visible dans de nombreux contextes.

Je l'ai corrigé en exécutant manuellement c: \ windows \ system32 \ systempropertiesadvanced.exe et en supprimant une entrée de mon chemin PATH pour me placer sous 2048 caractères. Les nouvelles fenêtres cmd fonctionnent parfaitement.

Mise à jour: Cette question similaire affirme que 2047 est le maximum, et développe les règles d'expansion

Corbeau
la source
2
Je viens de résoudre le problème en redémarrant l'ordinateur ... C'est vraiment une limite stupide de Windows!
Edwin Yip
3
Je viens de rencontrer ce problème. Quelle blague. Merci
SwimBikeRun
3
Comme d'autres l'ont mentionné, après avoir corrigé votre PATH, redémarrez simplement explorer.exe dans le gestionnaire de tâches si vous ne souhaitez pas redémarrer. Assurez-vous de NE PAS lancer le gestionnaire de tâches en cliquant avec le bouton droit de la souris sur la barre de tâches! Cela initialisera le gestionnaire de tâches avec le chemin d'accès levé (et donc votre nouveau processus explorer.exe). Lancez-le en faisant ctrl + shift + escape
C. Tewalt
1
Merci pour ça. Je luttais contre cela depuis environ un mois quand un produit Sony a augmenté mon chemin d’environ 200 caractères.
Michael Dorgan
1
Ce que j’ai fait en plus de ce que Raven a proposé: remplacer les répertoires de base communs, comme c:\program files (86)dans la variable de chemin, par des variables telles que, par exemple, PRGX86pointant vers le répertoire de fichiers du programme. De cette façon, vous pouvez enregistrer des caractères supplémentaires.
ovm
23

La limitation de 2048 caractères est réelle. Ce que j'ai fait est de scinder le chemin en deux variables distinctes et d'inclure la seconde variable dans la variable PATH:

PATH=C:\;%PATHEXTENDED%
PATHEXTENDED=E:\

Comme cela, je n'ai pas eu à supprimer de répertoires PATH, mais la variable PATH a moins de 2048 caractères.

Dark Vador
la source
2
ok c'est assez génie
kenwarner
1
Très intelligent, mais les applications qui ajoutent dynamiquement des entrées PATH fonctionneront probablement sur le chemin complètement développé et resteront fous. Mais au moins la douleur sera portée à ce processus.
Raven
Merci pour cette bonne idée, mais malheureusement cela ne fonctionnait pas sous Win7: la variable "extpath" - ou dans votre cas "pathextended" - n'a pas été analysée .....
unknown6656
2
Cette solution ne fonctionnait pas pour moi dans Win 7. Le contenu des 2 variables a été concaténé, mais tous les caractères postérieurs à la 2048e (?) Ont été tronqués à partir de la variable PATH combinée résultante. J'ai donc supprimer les entrées de PATH, conformément à @Raven, pour que mes icônes %windir%, etc., reviennent.
Snark
12

Solution de contournement pour ceux qui tentent de résoudre ce problème, que ce soit de manière excessive pathou pour toute autre raison: redémarrez simplement Explorer. Le nouveau shell prend un nouvel environnement. Cela corrige la corruption pour le moment, sans avoir à redémarrer, même si vous n'avez pas encore été en mesure d'identifier et de résoudre définitivement la cause sous-jacente.

1.

entrez la description de l'image ici

2

entrez la description de l'image ici

3

entrez la description de l'image ici

EDIT: mise à jour pour les nouvelles versions de Windows.

Le gestionnaire de tâches le fait maintenant en une étape:

entrez la description de l'image ici

Reg Modifier
la source
Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire en dessous de son message - vous pouvez toujours commenter vos propres messages, et une fois que vous avez suffisamment de réputation, vous pourrez commenter n'importe quel message .
Michael K
Avec égards, je ne suis pas d'accord. La question est Windows 7's PATH and environment variables are corrupted. Ma réponse fournit un moyen de supprimer cette corruption. C'est une réponse pertinente à la fois en soi et en conjonction avec d'autres correctifs après lesquels un redémarrage serait autrement nécessaire.
Reg Edit
Je suggérerais d'éditer Ravens answer et d'y ajouter votre partie. La plupart des gens ne liront que la réponse acceptée et si je comprends bien, votre réponse viendra principalement s’ajouter à celle-ci.
Michael K
Ah, je vois. Non, c'est pertinent pour toute solution essayée. J'ai modifié ma réponse pour que cela soit plus clair.
Reg Edit
1
c'était probablement plus utile comme commentaire que comme réponse. Cela plutôt que de le redémarrer, il devrait terminer la tâche explorer.exe et redémarrer explorer.exe. Votre réponse résout une partie de son problème - cette partie "Je ne peux même pas ouvrir la boîte de dialogue Propriétés système où je peux voir les variables d’environnement (car il utilise des variables shell pour le démarrer et cela ne fonctionne pas. En bref, je redémarre tous les temps." Mais remarquez que comme il a un problème de chemin après un redémarrage, cela ne le corrigera pas plus qu’il ne le fait en redémarrant.
barlop
3

vous devriez obtenir un programme pour surveiller les clés de registre

variables utilisateur

HKCU\Environment

et

variables machine

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

vous pourriez attraper le moment où ils sont détruits et le réduire.

aussi, le temps qu'il faut..après le démarrage. si vous pouvez au moins savoir quand cela se produira, cela vous aidera à réduire les choses.

essayez aussi le mode sans échec. en cas de lien avec le processus, et vérifiez l'afficheur d'événements.

barlop
la source