Como recuperar PATH sendo truncado para 1024 caracteres pelo SETX

12

Recebi um erro no Windows 8 depois de tentar usar o SETX para adicionar o JAVA.exe à variável PATH do Windows:

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

Após uma reinicialização, percebo que o PATH é realmente muito menor do que antes. Desde então, li que o SETX não pode lidar com mais de 1024 caracteres. Seria bom saber no artigo que recomendava usá-lo.

Gostaria de saber se meu sistema ficará instável agora que (presumivelmente) alguns dos diretórios não aparecem mais na variável PATH. O final da string é claramente cortado no meio do diretório (em Pr):

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

Existe alguma maneira de reverter ou em qualquer lugar que o valor anterior de PATH tenha sido capturado. Cara, eu não acredito que esse tipo de coisa ainda pode acontecer no Windows depois de 29 anos.

Doug
fonte
Diferente desta pergunta, porque esse usuário está apenas interessado em descobrir outra maneira de editar a variável PATH. Gostaria de saber se meu sistema está em um estado danificado e como posso me recuperar. superuser.com/questions/387619/…
Doug
1
seu sistema não será instável, mas descubra em outro usuário ou página da web do Windows 8, qual deve ser o caminho em uma nova instalação do Windows 8 e use-a. E cresça se necessário. Sempre faça backup do seu PATH antes de usar o setx. Talvez haja uma restauração do sistema que você possa fazer no Windows 8 que possa reverter o caminho? vale a pena tentar EDIT ADDED- da próxima vez que usar setx, primeiro faça eco de% PATH%> afile <- e tente setx em alguma outra variável que não seja PATH. Então, quando tiver certeza de que possui a linha setx correta, depois de experimentá-la em TESTPATH, faça setx em PATH.
barlop
1
Se você ainda não reiniciou uma segunda vez, pode procurar os backups do CurrentControlSet.
Bob
3
@Bob bem, se alguém não reiniciou e ainda tem a mesma janela de cmd aberta, depois de um setx, a variável path ainda não está definida na janela de cmd atual, e você pode ecoar% path% De qualquer forma, talvez o sistema restaurar restaura o caminho?
barlop
1
sobre estabilidade : basicamente, para que o Windows funcione bem, você só precisa de `% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0`. Tudo o resto é software de terceiros. A nVidia irá adicionar novamente suas entradas na atualização do driver, e funciona bem mesmo sem elas. Os problemas relacionados ao caminho são raros e geralmente aparentes; portanto, você pode lidar com eles caso a caso. Sobre o caminho de expansão : use pathman.exe no kit de recursos . Mas lembre-se dos limites de superuser.com/a/387625
LogicDaemon 7/16

Respostas:

3

PATH é salvo no Registro em

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

Se você tiver pontos de restauração do sistema, poderá encontrar a chave relevante e restaurá-la .

Sir Adelaide
fonte
2
Normalmente haverá várias chaves de registro "ControlSetXXX", das quais a chave CurrentControlSet mencionada é uma. Não há necessidade de pontos de restauração para apenas dar uma olhada neles.
22417 kreemoweet
0

Não tem reputação suficiente para comentar aqui, mas o comentário do @ kreemoweet - infelizmente, o Windows 10 (e também acredito que o 8 / 8.1) desativou a opção "última configuração válida" e os backups associados que costumava restaurar (o ControlSet ### do qual você fala). Esse comportamento pode ser reativado por meio de uma correção de registro, mas, a menos que o usuário faça isso manualmente, é muito provável que eles encontrem apenas um conjunto de controle (que na verdade será o CurrentControlSet) ao procurar no registro). Portanto, uma restauração do sistema pode estar em ordem aqui.

Caso alguém encontre isso, a maneira de reativar os backups do ControlSet ### no registro é adicionar um valor de registro:

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")

A descrição acima ativa os backups do ControlSet ###. Então, se você também deseja habilitar a opção "última configuração válida" no menu de inicialização (herdado) (que também precisará ser reativado no Win8 / 8.1, acredito, para que essa opção seja realmente exibida), você precisa adicionar:

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

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