Por que o powershell executa executáveis em uma janela separada?

3

Em um dos meus servidores (2008 R2) o powershell se recusa a executar executáveis sem extensão, então digitando cmd (ou & cmd) no prompt de comando resulta na seguinte mensagem de erro:

The term 'cmd' is not recognized as the name of a cmdlet

Invocar executável uma das seguintes formas aparece janela separada (que é executada de forma assíncrona em relação ao pai). Eu tentei isso na versão x86 do powershell e no x64 um. Eu tentei argumento -Noprofile. PATH parece estar bem. Inclui o System32 e todos.

A única maneira que eu consegui executar o powershell em forma de cmd é abrir o shell cmd.exe padrão, executar o powershell.exe a partir dele e executar o teste cmd / c echo a partir dele. Inception, hein?

O que devo tentar em seguida?

    
por Artem Tikhomirov 25.06.2012 / 18:15

1 resposta

2

Na nossa troca de comentários, parece que a variável de ambiente do sistema %PATHEXT% não está definida. Isso impede que o sistema operacional determine quais extensões de arquivo devem ser verificadas ao procurar executáveis. Esta variável do sistema é derivada do seguinte valor do registro:

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

Se este valor estiver faltando, você poderá recriá-lo com o seguinte:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /t REG_SZ /v "PATHEXT" /d ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC" /f
    
por 05.07.2012 / 15:54