PATH do Windows 7 e variáveis ​​de ambiente estão corrompidas

97

Não tenho idéia, mas ultimamente tenho tido esse problema. Depois de executar minha estação de trabalho de repente, algo destrói o PATH e muitas coisas param de funcionar. Inicialmente, meu caminho tinha MUITOS diretórios listados (eu uso o Windows 7 como uma caixa de desenvolvimento) e depois de algum tempo, eu tinha apenas 3-4 diretórios listados no meu caminho.

Não consigo nem abrir a caixa de diálogo Propriedades do sistema, onde posso ver variáveis ​​de ambiente (porque ele usa variáveis ​​de shell para iniciá-lo e não funciona). Em suma, eu reinicio toda vez.

Alguma idéia do que pode causar esse problema? Ultimamente não corri nada de novo / incomum. Somente o VmWare (mas eu o uso no passado e não tinha esse problema naquela época).

Acabei de verificar, ainda %WINDIR%não está definido. WTF ?!

Pavel P
fonte
2
Recentemente, tive o mesmo problema na minha caixa do Vista de 64 bits. Sem uma causa óbvia, se eu abrir um novo prompt de comando, a variável path será definida como a parte do caminho definida em "Variáveis ​​do Usuário". A parte "Variáveis ​​do sistema" do caminho está ausente. Algumas, mas nem todas as variáveis ​​do sistema são indefinidas. O registro parece bom e tudo parece bem na caixa de diálogo Propriedades do sistema (usando "c: \ windows \ system32 \ systempropertiesadvanced.exe"). Após a reinicialização, o sistema funciona normalmente. O problema ocorre a cada poucos dias. Uma verificação completa de vírus não encontrou nada.
Lee
Eu tive o mesmo problema. Eu encontrei algumas coisas diferentes que o acionaram (executando certos programas, instaladores, etc.), mas não há razão para causá-lo (eles funcionam bem em outras máquinas ou em uma VM). Eventualmente, tive outros problemas para agilizar a necessidade de reinstalar que consertou tudo.
Jim McKeeth
4
meu caminho foi muito longo. Eu removi duplicatas, removi entradas inúteis e o problema desapareceu.
Pavel P

Respostas:

127

Do meu blog

Resumindo, se sua variável de ambiente PATH tiver mais de 2048 caracteres, ela (e WINDIR) deixarão de ser visíveis em muitos contextos.

Corrigi-o executando manualmente c: \ windows \ system32 \ systempropertiesadvanced.exe e excluindo uma entrada do meu PATH para me colocar em caracteres de 2048. As novas janelas cmd funcionam perfeitamente.

Atualização: Esta pergunta semelhante afirma que 2047 é o máximo e detalha regras de expansão

Raven
fonte
2
Corrigi o problema reiniciando o computador ... Esse é realmente um limite estúpido do Windows!
Edwin Yip #
3
Acabei de encontrar este problema. Que piada. Obrigado
SwimBikeRun
3
Como outros usuários mencionaram, após corrigir o PATH, basta reiniciar o explorer.exe no gerenciador de tarefas, se você não deseja reiniciar. Certifique-se de NÃO iniciar o gerenciador de tarefas clicando com o botão direito do mouse na barra de tarefas! Isso inicializará o gerenciador de tarefas com o caminho levantado (e, portanto, seu novo processo explorer.exe). Inicie-o fazendo ctrl + shift + escape
C. Tewalt 8/15/15
1
Obrigado por isso. Eu estava lutando contra isso no último mês, mais ou menos, quando um produto da Sony aumentou meu caminho em cerca de 200 caracteres.
Michael Dorgan
1
O que fiz além do que Raven propôs: substituir diretórios de base comuns, como c:\program files (86)na variável path, por outras variáveis, como por exemplo, PRGX86apontando para o diretório dos arquivos de programa. Dessa forma, você pode salvar alguns caracteres adicionais.
ovm
23

A limitação de 2048 caracteres é real. O que fiz foi dividir o caminho em duas variáveis ​​separadas e incluir a segunda variável na variável PATH:

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

Assim, não tive que excluir nenhum diretório PATH, mas obtive a variável PATH com menos de 2048 caracteres.

Darth Vader
fonte
2
ok isso é muito gênio
kenwarner
1
Muito inteligentes, mas os aplicativos que adicionam entradas PATH dinamicamente provavelmente estarão operando no caminho totalmente expandido e ainda ficarão loucos. Mas pelo menos a dor será direcionada para esse processo.
Raven
Obrigado por esta grande ideia, mas infelizmente não funcionou sob Win7: o "extpath" variável - ou no seu caso "pathextended" - não foi analisado .....
unknown6656
2
Esta solução não funcionou para mim no Win 7. O conteúdo das 2 variáveis ​​foi concatenado, mas qualquer caractere após o 2048º (?) Foi truncado da variável PATH combinada resultante. Então, eu tive que remover as entradas do PATH no final, conforme @Raven, para obter meus ícones e %windir%etc. para voltar.
snark
12

Uma solução alternativa para quem tenta resolver esse problema, devido a excesso pathou por qualquer outro motivo: basta reiniciar o Explorer. O novo shell pega um novo ambiente. Isso corrige a corrupção no momento, sem a necessidade de reinicialização, mesmo se você ainda não foi capaz de identificar e resolver permanentemente a causa subjacente.

1

insira a descrição da imagem aqui

2)

insira a descrição da imagem aqui

3)

insira a descrição da imagem aqui

EDIT: atualização para versões mais recentes do Windows.

O Gerenciador de tarefas agora faz isso em uma etapa:

insira a descrição da imagem aqui

Reg Editar
fonte
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem - você sempre pode comentar em suas próprias postagens e, quando tiver reputação suficiente , poderá comentar em qualquer post .
Michael K
Com respeito, eu discordo. A questão é Windows 7's PATH and environment variables are corrupted,. Minha resposta fornece uma maneira de remover essa corrupção. Essa é uma resposta relevante, por si só e em conjunto com outras correções, após as quais uma reinicialização seria necessária.
Reg Edit
Eu sugeriria editar a resposta do Ravens e adicionar sua parte. A maioria das pessoas lê apenas a resposta aceita e, se bem entendi, sua resposta é principalmente uma adição a isso.
Michael K
Ah entendo. Não, é relevante para qualquer solução que esteja sendo tentada. Eu editei minha resposta para deixar isso mais claro.
Reg Edit
1
isso provavelmente valeu mais a pena como comentário do que como resposta. Que, em vez de reiniciar, ele deve encerrar a tarefa explorer.exe e reiniciar o explorer.exe. Sua resposta aborda parte do problema dele - esta parte "Não consigo nem abrir a caixa de diálogo Propriedades do sistema, onde posso ver variáveis ​​de ambiente (porque ele usa variáveis ​​de shell para iniciá-lo e não funciona). Em resumo, reinicializo todos os Tempo." Mas observe que, como ele tem um problema de caminho após uma reinicialização, isso não resolveria mais o problema do que ele ao reiniciar.
barlop
3

você deve obter um programa para monitorar as chaves do registro

variáveis ​​de usuário

HKCU\Environment

e

variáveis ​​de máquina

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

você pode pegar o momento em que eles são destruídos e reduzi-los.

Além disso, o tempo que demora ... após a inicialização. se você puder pelo menos saber quando isso acontecerá, ajudará a diminuir as coisas.

tente o modo de segurança também. caso esteja relacionado ao processo e verifique o visualizador de eventos.

barlop
fonte