Como você pode ver na captura de tela abaixo, C:\Windows\system32\cmd.exe
existe (já que o próprio prompt de comando está usando esse caminho), e tento referenciá-lo com o nome curto cmd.exe e o caminho completo, mas ambos resultam no mesmo erro do PsExec. exe:
The system cannot find the specified file.
O usuário do serviço de rede existe; se eu digitar errado, recebo uma solicitação de senha e uma mensagem dizendo que a senha do nome de usuário não existe.
Recebo esta mensagem de erro em vários computadores, mas funciona em outros; com uma combinação de Windows Server 2008 R2 e 2012 R2. Eu estou usando a versão mais recente do PsExec.exe, que atualmente é 2.11, e estou executando o prompt de comando que uso para iniciar o PsExec como administrador, portanto, ele deve ter todas as permissões necessárias.
Encontrei muitas postagens sobre esse problema ao executar o PsExec em uma máquina remota, mas nenhuma para a máquina local, o que estou fazendo.
Alguma idéia sobre qual é o problema?
Responder1
A correção acabou sendo NÃO executar o prompt de comando do qual eu estava iniciando o PsExec como administrador. Se eu executar o comando em um prompt cmd em execução como Admin, recebo o erro. Se eu executá-lo em um prompt de comando não elevado, ele funcionará bem.
Responder2
Outra razão pela qual isso pode acontecer é que você interrompeu ou desativou os serviços LanmanServer (Servidor) ou LanmanWorkstation (Estação de Trabalho).
Da forma como o PsExec funciona, ele precisa deles para funcionar.
Responder3
Também descobri que se eu copiar o PSExec para outro diretório (e o diretório Sysinternals não estiver no PATH) e tentar executá-lo a partir daí, ele falhará como acima. Se eu executar o PSExec no diretório Sysinternals, a opção -s funcionará.
Portanto, outro item a verificar é certificar-se de que a pasta Sysinternals esteja no caminho ou que o PSExec seja executado a partir desse diretório.
Aparentemente, ele precisa de outro executável Sysinternals...
Responder4
O que resolveu para mim foi executar o comando 'psexec' no local padrão do cmd (c:\windows\system32 no meu caso) e fornecer o caminho completo para o argumento (o aplicativo que você está executando):
C:\WINDOWS\system32>psexec c:\Projects\newdesktop\someapp.exe