Não é possível resolver% windir% / Não é possível modificar% path% ou% path% sendo redefinido na inicialização


45

Consulte as atualizações 3 e 4 abaixo para saber como o problema evoluiu


Meu computador (Windows 7 x64, Lenovo Thinkpad T530) está com problemas para resolver% windir%. Após a inicialização, tudo funciona bem. Em algum momento, o computador não consegue resolver% windir%.

Janela do console

A verificação da janela de variáveis ​​de ambiente mostra que ela está definida.

Ambiente Varibales

A verificação do registro também mostra que ele também está definido. Na verdade, eu apaguei a chave e a reinseri sem sucesso.

Registro

Após uma reinicialização, tudo funciona bem por um tempo. Alguém tem alguma opinião sobre qualquer outra coisa que eu possa verificar?


Atualização 1: Depois de pensar um pouco sobre isso, desinstalei o driver / programa Konica Minolta Pagebox que foi instalado na época em que esse problema começou a ocorrer (veja os comentários abaixo). O problema parece demorar cerca de 4-24 horas (eu nunca cronometrei) para se manifestar, então atualizarei novamente depois disso.

Atualização 2: o problema ainda está ocorrendo. Voltei do almoço e não foi possível encontrar% windir%. Fiz um teste após uma reinicialização hoje de manhã, coloquei o computador no modo de suspensão e acordei. % windir% ainda foi definido depois de acordar.

Atualização 3: Por Daniel nos comentários, corri setantes e depois do erro e comparei as saídas. A primeira coisa que notei é que, em uma nova inicialização, meu % path% tem mais de 2000 caracteres . Eu a reduzi para ~ 375 caracteres e a verifiquei em uma nova janela do cmd. Reiniciei, verifiquei o caminho novamente e ele voltou a ter mais de 2000 caracteres (correspondia ao que eu vi originalmente). Eu o truncou novamente e reiniciei mais uma vez e a mesma coisa aconteceu. Eu apaguei a variável path e criei uma nova; mesma coisa aconteceu. Neste ponto, tudo o que posso concluir é que não posso alterar permanentemente meu caminho OU o caminho está sendo redefinido por algum processo na inicialização. Alguma ideia?

Atualização 4: editei meu caminho através do método de registro sugerido abaixo. Eu verifiquei meu caminho hoje depois de executar por um tempo e ele cresceu a partir do que entrei no registro; agora possui algumas novas entradas e muitas duplicatas. As únicas novas entradas são do SQL Server 2012. Alterei isso no registro e notei que o registro NÃO corresponde à saída de echo %path%. Verificar as variáveis ​​de ambiente na guia Propriedades avançadas mostra uma terceira versão do meu caminho.

Registry Path:
C:\Program Files (x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;

Command Line path:
C:\Program Files (x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;
C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;
C:\Program Files(x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;

Environment Variables path:
C:\Program Files (x86)\Microchip\mplabc30\v3.30\bin;
C:\RUBY193\BIN;
C:\Windows\SYSTEM32;
C:\Windows;
C:\Windows\SYSTEM32\WBEM;
C:\PROGRAM FILES\COMMON FILES\LENOVO;
C:\SWTOOLS\READYAPPS;
C:\PROGRAM FILES (X86)\COMMON FILES\LENOVO;
C:\PROGRAM FILES (X86)\MICROCHIP\MPLAB C32 SUITE\BIN;
C:\HTSOFT\PIC18\BIN;
C:\PROGRAM FILES\TORTOISESVN\BIN;
C:\Windows\System32\WindowsPowerShell\v1.0\;

Parece que o caminho da linha de comando = caminho do registro + caminho das variáveis ​​de ambiente . Tentei definir o caminho do registro e o caminho das variáveis ​​de ambiente para a mesma coisa e reinicie. Após a reinicialização, meu caminho agora é dobrado, basicamente duas cópias consecutivas do caminho do registro acima.

Mais uma vez, algum pensamento?

Atualização 5: depois de conversar com o gerente de TI, ele diz que está enfrentando um problema semelhante em outro computador. Ambos os computadores possuem SSDs (parece ser o único fator comum). Isso pode ou não ser pertinente.


tente usar setpara atribuir valor windirmanualmente e repita com echonovamente - veja se isso lhe dará uma saída ou não. Se isso acontecer, algo está atrapalhando suas variáveis ​​env - se não, algo não está bem com o seu shell e / ou comando echo.
Mnmnc

Definir ele funciona, mas eu realmente não estou certo de que isso prova alguma coisa, como eu pode executar "set SystemRoot = abcd", para uma variável de sessão semelhante, de curta duração
Zack

Se posso perguntar, como você percebeu isso em primeiro lugar? Ou seja, o que deu a entender que havia um problema? (Sobre o off chance de que ele é relevante ...)
Shinrai

Algumas semanas atrás, um driver de scanner de rede foi instalado no meu computador. Pouco tempo depois, tive problemas com os programas do Windows não sendo encontrados. Eu rastreei até o meu caminho ser muito longo, e consertei. Isso pode ou não estar relacionado. As coisas ficaram peculiares desde então. Especificamente, o ícone do alto-falante do Windows no canto inferior gera um erro periodicamente ("Nenhum driver de saída encontrado", mas o som ainda funciona). Fui verificar o caminho novamente e ocorreu um erro ao tentar obter configurações avançadas do sistema ("não é possível encontrar% windir% \ system32 \ ..."). Eu o localizei para windir sem resolver.
Zack

Respostas:



4

Com a GUI, defina o conteúdo da variável % windir% como % SystemRoot% .

Quanto ao seu% path%, você pode resolver isso com o Editor do Registro:

  • Inicie o Regedit.exe
  • Vamos para HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
  • No painel direito, clique duas vezes no valor Path (REG_EXPAND_SZ)
  • Altere o valor da maneira que desejar e reinicie

insira a descrição da imagem aqui


Parece que foi corrigido. Darei um dia inteiro no trabalho na segunda-feira para ter certeza e, assumindo que tudo corre bem, vou marcar isso como a resposta correta depois disso. Obrigado.
Zack

1
@ Zack Eu tenho exatamente o mesmo problema em um lenovo T430 e o mesmo acontece com um colega de trabalho. A resposta acima não funcionou. O problema foi finalmente resolvido?
ford prefect

@inquisitiveIdiot - nunca o resolvi completamente. Desinstalei algumas coisas que estavam no caminho e continuei removendo o caminho manualmente na linha de comando. Eventualmente, o problema parou de acontecer.
Zack

@Zack Acabei de publicar o que acabou trabalhando como uma resposta no caso de você ter um problema novamente
prefeito do ford

Tendo o mesmo problema em um T430 também.
Lightyear Buzz

2

Eu tive o mesmo problema no meu Lenovo TS530. Começou a ocorrer após a instalação de novos programas que fizeram com que meu caminho fosse ainda muito mais longo do que antes e, portanto, os instaladores adicionaram o novo material ao início da definição do caminho . Editei o caminho no regedt movendo% SystemRoot% para o início da definição do caminho.

path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot....

Além disso, editei a variável ambiental windir de

windir= C:/Windows

para

windir=C:\Windows

Isso parece ter resolvido o problema. (É possível que eu tenha cometido o erro de barra invertida anteriormente enquanto tentava corrigir o problema. Ou, alternativamente, o instalador o alterou.)


O Windows perdoa muito o uso em /vez de \ .
jpaugh

1

Eu tive o mesmo problema. Foi resolvido quando excluí a variável de ambiente PATH (depois de fazer um backup de seu conteúdo) na caixa de diálogo a seguir.

C:\Windows\System32\SystemPropertiesAdvanced.exe

Eu reconstruí a variável PATH mais tarde, uma a uma. Movi parte do conteúdo do PATH que não se encaixava nas variáveis ​​do sistema nas variáveis ​​do usuário PATH.


1

Como já mencionado por @ Pieter-Jan Busschaert, é mais provável por causa de uma PATHvariável de ambiente corrompida ou muito longa .

A maneira mais fácil de corrigir isso é baixando o Rapid Environment Editor . Ele mostra o que há de errado com suas PATHconfigurações e permite corrigi-lo imediatamente.


Eu sempre fui capaz de consertar o caminho. O problema era que o caminho continuava se expandindo espontaneamente além de 2048 caracteres sem que eu fizesse nada (por exemplo, instalar ou desinstalar um programa).
Zack

1

Descobri (de forma consistente) que isso também ocorrerá se o SQL Server 2012 ou versões posteriores estiverem instaladas na máquina Windows 7 (não tenho certeza se o problema também ocorre no Win8.x ou Win10), mas a solução encontrada foi: Também crie a variável de ambiente windir no contexto do usuário atual a ser definido como% SystemRoot%. A única vez que veríamos isso seria ao fazer RDP (sessão remota) na (s) estação (ões) de trabalho. Se logássemos no console, não encontraríamos isso. Não sei se os componentes do SQL 2012 (ou posterior) foram instalados no seu antes de isso acontecer ou não, mas você pode tentar esta resolução.


0

Nosso suporte técnico me deu esta resposta:

  1. Abra Configurações de Controle de Conta de Usuário, clicando no botão Iniciar e, em seguida, clicando em Painel de Controle. Na caixa de pesquisa, digite uac e clique em Alterar configurações do Controle de Conta de Usuário.
  2. Faça o seguinte: • Para desativar o UAC, mova o controle deslizante para a posição Nunca notificar e clique em OK. Se você for solicitado a fornecer uma senha ou confirmação de administrador, digite a senha ou forneça a confirmação. Você precisará reiniciar o computador para desligar o UAC.

Funciona com duas coisas diferentes:

1.) Esse problema realmente não existe porque este programa requer que% windir esteja funcionando corretamente. Em vez disso, execute C: \ Windows \ System32 \ UserAccountControlSettings no prompt de comando.

2.) Você prefere não receber os avisos de segurança do Windows.


UAC já foi desativado no meu caso, mas se isso funciona para você ou qualquer outra pessoa, isso é ótimo
Zack

0

Eu tive o mesmo problema depois de atualizar para um SSD no meu Lenovo X230. O software que usei para a migração (Acronis TrueImage) adicionou um valor de caminho, que deve ter me ultrapassado o limite. Eu resolvi da seguinte maneira:

Abra o Regedit

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

Modifique o valor do caminho (veja a resposta do usuário184745 acima).

Corte o valor atual e cole no bloco de notas.

Foram editados vários valores duplicados, bem como caminhos que pareciam de pouco benefício. Reduzi o comprimento do caminho de 2.283 caracteres para 1.517.

Colou a nova string de caminho na chave Path.

(Salve o conteúdo do meu bloco de notas apenas por precaução.)

Reinicializado. Tudo está bem.



-1

Eu tive os mesmos problemas que acima. % windir%. ícones não exibidos para alguns itens. Qualquer aplicativo que usasse windir ... Passou por todas as correções, incluindo inicialização a frio, abreviação de caminho, etc.
Finalmente, recriei meu perfil do Windows ... problema foi resolvido.


4
Bem-vindo ao superusuário PaulG. Embora você tenha tentado responder à pergunta do OP, ele não possui fatos de suporte e pode levar à exclusão. Por favor, consulte como e por que algumas respostas são excluídos e como escrever uma boa resposta
pun
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.