web-dev-qa-db-fra.com

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

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 si %WINDIR% n'est pas défini. WTF?!

97
Pavel

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 revendications 2047 est le maximum, et développe les règles d'expansion

127
Raven

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 ça, je n'ai pas eu à supprimer de répertoires PATH, mais j'ai obtenu la variable PATH sous 2048 caractères.

23
Darth Vader

Solution de contournement pour ceux qui tentent de résoudre ce problème, en raison d'une quantité excessive de path ou pour toute autre raison: redémarrez simplement Explorer. Le nouveau Shell adopte 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.

enter image description here

2.

enter image description here

3.

enter image description here

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

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

enter image description here

12
Reg Edit

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.

3
barlop