start exe em uma sessão remota com PsExec

5

Gostaria de iniciar um aplicativo remotamente. Eu estou usando o seguinte comando PsExec:

PsExec \computerOne -u Domain\User1 -p 123456 -x "C:\Windows\System32\calc.exe"

Eu tentei usar -i para que o programa interaja com a área de trabalho:

PsExec \computerOne -u Domain\User1 -i 123456 -x "C:\Windows\System32\calc.exe"

mas isso não funciona. O erro do segundo exemplo é:

calc.exe exited on computerOne with error code -1073741502"

Se eu omitir a especificação e apenas escrever o caminho do exe, o processo é listado no gerenciador de tarefas, mas não consigo ver nenhuma interface do usuário. Preciso alterar alguma configuração na minha área de trabalho na qual desejo iniciar o programa?

    
por andreaspfr 07.02.2012 / 10:56

3 respostas

7

O que você está vendo provavelmente será um efeito do isolamento da Sessão 0 - psexec instala e inicia um novo serviço na máquina remota, mas a sessão padrão em que está iniciando o processo é 0 e, portanto, indisponível para o usuário atualmente conectado (pelo menos do Windows Vista / Server 2008). Você precisa especificar o número da sessão após o parâmetro -i . Você pode consultar os usuários atualmente conectados (e seus números de sessão) usando o comando quser /SERVER:computerOne antecipadamente.

Para testes rápidos e sujos, você pode assumir que o ID da sessão do primeiro usuário conectado de forma interativa é "1".

    
por 07.02.2012 / 11:53
1

Você também pode simplesmente remover o -x e substituir por -I, ele deve abrir PsExec \ computerOne -u Domínio \ Usuário1 -p 123456 -i "C: \ Windows \ System32 \ calc.exe"

    
por 05.08.2014 / 09:18
0

A causa-raiz parece ser identificadores com vazamento feitos pelo método Console.Write em Microsoft.powershell.consolehost.dll . O código de saída -1073741502 em hexadecimal é 0xC0000142 (status_dll_init_failed).

Isso parece estar isolado para o Windows 7 & 2008 (de acordo com o KB2701373 da Microsoft).

Side-Note: Vários "Correções" em outros lugares da Internet são atribuídos a fazer algum tipo de encantamento mágico, depois fecham o PowerShell & abrindo uma nova instância. No entanto, o 'reinício' do PowerShell é o que realmente resolve temporariamente o problema.

    
por 29.10.2014 / 17:48