Isso provavelmente está relacionado a um bug conhecido no Windows XP, no Windows 7 e em vários outros. (Com base na documentação disponível, ela não afeta ou não foi vista no Windows 8 ou posterior.)
O bug está documentado no artigo Microsoft KB # 329308 ( variável de ambiente não pode expandir% APPDATA% para a pasta Aplicativo ). Ele também é documentado como uma vulnerabilidade Média no banco de dados nacional de vulnerabilidades do NIST, como CVE-2007-6753 . Uma das referências citadas na entrada do CVE, artigo no Blog de Segurança da ACROS , afirma que a questão pode ser tão antiga quanto, ou até mais antiga que, em 2003.
Embora o artigo de referência mencionado mencione especificamente %APPDATA%
, o bug afeta todas as "variáveis dentro de variáveis" e, particularmente, torna-se uma preocupação de segurança quando é exibido na variável %PATH%
.
Eu não sei porque privilégios elevados poderiam fazer diferença em como esse bug é expresso. Na minha experiência, a reprodução do problema é tipicamente bastante esquisita de qualquer maneira. Mas o caso geral de variáveis dentro de variáveis que não estão sendo adequadamente expandidas é um bug conhecido, então eu não gastaria muito tempo tentando resolvê-lo.
A única solução que tenho em mente é editar as variáveis afetadas para que os caminhos sejam explicitamente definidos, em vez de depender de outras variáveis. Em qualquer lugar que você veja "% SystemRoot%" em %PATH%
, substitua-o pelo valor exato de %SystemRoot%
. Faça o mesmo com qualquer outra variável aninhada em seu ambiente onde for possível - especialmente onde essas variáveis definem caminhos de arquivos / pastas.