Comment récupérer de PATH tronqué à 1024 caractères par SETX

12

J'ai reçu une erreur sur Windows 8 après avoir essayé d'utiliser SETX pour ajouter JAVA.exe à la variable Windows PATH:

WARNING: The data being saved is truncated to 1024 characters.

Après un redémarrage, je remarque que le CHEMIN est en effet beaucoup plus court qu'auparavant. J'ai lu depuis que SETX ne peut pas gérer plus de 1024 caractères. Cela aurait été bien de savoir dans l'article qui recommandait de l'utiliser.

Je me demande si mon système sera instable maintenant que (vraisemblablement) certains des répertoires n'apparaissent plus dans la variable PATH. La fin de la chaîne est clairement coupée au milieu du répertoire (à Pr):

(...) ;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Pr

Existe-t-il un moyen de revenir en arrière ou n'importe où que la valeur précédente de PATH a été capturée. Mec, je ne peux pas croire que ce genre de choses puisse encore arriver dans Windows après 29 ans.

Doug
la source
Différent de cette question car cet utilisateur souhaite simplement trouver une autre façon de modifier la variable PATH. Je me demande si mon système est dans un état endommagé et comment je peux récupérer. superuser.com/questions/387619/…
Doug
1
votre système ne sera pas instable, mais découvrez auprès d'un autre utilisateur de Windows 8 ou d'une page Web, quel chemin devrait être dans une nouvelle installation de Windows 8, et utilisez-le. Et faites-le pousser si nécessaire. Sauvegardez toujours votre PATH avant d'utiliser setx. Peut-être qu'il y a une restauration du système que vous pouvez faire dans Windows 8 qui peut revenir en arrière? cela vaut la peine d'essayer EDIT ADDED- la prochaine fois lors de l'utilisation de setx, faites d'abord echo% PATH%> afile <- et essayez setx sur une autre variable non PATH. Ensuite, lorsque vous êtes sûr d'avoir la ligne setx juste, après l'avoir essayée sur TESTPATH, faites setx sur PATH.
barlop
1
Si vous n'avez pas encore redémarré une deuxième fois, vous pouvez consulter les sauvegardes arty ghee CurrentControlSet.
Bob
3
@Bob bien si l'on n'a pas redémarré, et que la même fenêtre cmd est toujours ouverte, puis après un setx, la variable path n'est toujours pas définie dans la fenêtre cmd actuelle, et vous pouvez simplement faire écho à% path% Quoi qu'il en soit, peut-être au système restaurer restaure le chemin?
barlop
1
à propos de la stabilité : fondamentalement, pour que Windows fonctionne correctement, il vous suffit de `% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0`. Tout le reste est un logiciel tiers. nVidia ajoutera à nouveau ses entrées lors de la mise à jour du pilote, et cela fonctionne bien même sans. Les problèmes liés au chemin sont rares et généralement apparents, vous pouvez donc les traiter au cas par cas. À propos de l' extension du chemin : utilisez pathman.exe du kit de ressources . Mais gardez à l'esprit les limites superuser.com/a/387625
LogicDaemon

Réponses:

3

PATH est enregistré dans le Registre à

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Si vous avez des points de restauration système, vous pouvez trouver la clé appropriée et la restaurer .

Sir Adelaide
la source
2
Il y aura généralement plusieurs clés de registre "ControlSetXXX", dont la clé CurrentControlSet mentionnée en est une. Pas besoin de points de restauration pour les consulter.
kreemoweet
0

Je n'ai pas assez de réputation pour commenter ici, mais le commentaire de @ kreemoweet - malheureusement, Windows 10 (et je crois que 8 / 8.1 aussi) a désactivé l'option "dernière bonne configuration connue" et les sauvegardes associées qu'elle était en mesure de restaurer (le ControlSet ### dont vous parlez). Ce comportement peut être réactivé via un correctif reg, mais sauf si l'utilisateur l'a fait manuellement, il est très probable qu'il ne trouvera qu'un seul jeu de contrôles (qui sera en fait le CurrentControlSet) lors de la recherche dans le registre). Une restauration du système pourrait donc être nécessaire ici.

Dans le cas où quelqu'un d'autre rencontrerait cela, la façon de réactiver les sauvegardes ControlSet ### dans le registre consiste à ajouter une valeur reg:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager

Name: BackupCount
Type: DWORD
Value: 1 = store one backup in registry (one "last known good config")
    2 = store two backups in registry (two "last known good configs")

Ce qui précède active les sauvegardes ControlSet ###. Ensuite, si vous souhaitez également activer l'option "dernière bonne configuration connue" dans le menu de démarrage (hérité) (qui devrait également être réactivé dans Win8 / 8.1, je crois, pour que cette option s'affiche réellement), vous besoin d'ajouter:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood

Name: Enabled
Type: DWORD
Value: 1 = enabled
    0 = disabled
dwillis77
la source