Psexec problema ao executar um aplicativo em uma máquina Windows Server 2008 R2 de uma máquina 2003 R2

2

Estou tentando executar um aplicativo em uma máquina do Windows Server 2008 R2 a partir de uma máquina com Windows Server 2003 R2 usando um arquivo em lotes com a seguinte linha de código em um arquivo em lotes:

psexec \nightmachine -u DOMAIN\User -p Password -i "C:\FilePath\Application.exe" argument1 argument2

O aplicativo falha ao ser executado corretamente quando iniciado usando o psexec, mas o aplicativo será executado corretamente se eu tiver feito o login no nightmachine com o mesmo usuário e o tiver iniciado a partir do caminho do arquivo via cmd. Eu consegui obter o erro retornado no aplicativo de seu log e a exceção retornada é a seguinte:

System.DllNotFoundException: Unable to load DLL 'rasapi32.dll': A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A)

Depois de procurar por esse código de erro na rede, há um monte de posts dizendo que isso é causado por corrupção de arquivo, mas eu não consigo ver porque isso seria o caso, pois o aplicativo será executado normalmente quando não for executado a partir de psexec . (o usuário é um administrador em ambas as máquinas)

Alguém por favor pode me ajudar nisso? Se mais alguma informação for necessária para ajudar a resolver este problema, por favor, pergunte e eu farei o meu melhor para publicá-la.

    
por Vermin 27.06.2011 / 13:43

2 respostas

0

Problema resolvido! Descobri que o aplicativo em execução no pc remoto pelo psexec estava perdendo seus detalhes de usuário quando o aplicativo estava chamando processos fora de si mesmo, o que significava que quaisquer permissões necessárias estavam sendo perdidas.

Para contornar esse problema, acabei configurando uma tarefa agendada no pc remoto onde o aplicativo mora para executar o aplicativo usando as credenciais do usuário requerido. A tarefa foi configurada para ser executada uma vez, mas também configurada para que possa ser acionada manualmente. Isso significa que, quando o aplicativo foi executado pela tarefa, nenhuma permissão foi perdida. Eu comecei a tarefa usando o Psexec:

psexec \remotemachine schtasks /run /tn "Task name"

    
por 01.07.2011 / 18:02
0

Eu assumo que o seu UNC na questão tem apenas uma barra devido a precisar digitar aqui desta forma para formatação "\\\", mas se não, corrija isso. Eu acho que o problema é que o psexec está olhando para seus argumentos fora das citações, e não sabendo o que fazer com eles. A maneira mais fácil pode ser apenas colocar esse comando que você pode executar no servidor em um arquivo de lote e psexec esse arquivo em lotes, ou você pode tentar mover a segunda cotação para depois dos argumentos. Claro que você não pode ter espaços no caminho então.

psexec \nightmachine -u DOMAIN\User -p Password -i "C:\FilePath\Application.exe" argument1 argument2"
    
por 27.06.2011 / 14:04