Rodando remotamente um aplicativo de uma pasta compartilhada com PsExec

1

Na verdade, não tenho certeza de que isso seja possível. vamos ver:

Eu tenho um script que é executado em um servidor de compilação. Vamos nomear este servidor A.
Ele descarta os compartimentos para uma pasta compartilhada no servidor B. E eu quero rodar o programa no servidor C.

Portanto, usando o caspol, posso permitir que o executável seja executado remotamente. isso significa que a partir de B eu posso executar \ C \ shared \ my.exe

O que eu quero fazer é de A run \ C \ shared \ my.exe em B.

SysInternals\PsExec.exe -u username -p password -accepteula \ServerC -i 0 -d -w \ServerB\Nightly\Server \ServerB\Nightly\Server\server.exe

O usuário tem todos os direitos necessários.

Mas, as opções -w (diretório de trabalho) aparentemente querem um caminho relativo ao servidor para o qual eu estou apontando. Alguma idéia?

    
por Stephane 11.01.2011 / 12:08

3 respostas

1

Sem saber o que seu aplicativo faz, você precisa definir o caminho de trabalho? Posso estar errado, mas não acredito que os caminhos da UNC sejam suportados? Que tal um pequeno truque, e fazer um mapa de uma unidade de rede, e empacotá-lo em um script? Algo como:

pushd \ServerB\Nightly\Server
server.exe
popd

Coloque isso em um script e chame-o usando psexec:

psexec -u username -p password \machine -accepteula -i 0 -d \serverb\nightly\server\myscript.bat

O comando pushd mapeia a próxima letra de unidade disponível para o compartilhamento e, em seguida, altera o diretório para esse novo mapa. popd retorna ao caminho anterior e desmonta a unidade.

    
por 13.01.2011 / 05:12
0

tente também com a opção -e (não tenta carregar o perfil do usuário) não tenha certeza sobre a opção "-accepteula" já que o psexec não solicita um AFAIK e isso não parece ser um interruptor válido para psexec ...

Os 2 switches "-i" e "-d" contradizem um ao outro, pois -i o faz executar interativamente e -d diz apenas para usá-lo com aplicativos não interativos. Eu nunca tive a necessidade de usar um dos dois switches.

A melhor maneira de abordar uma operação problemática envolvendo sistemas remotos que encontrei é primeiro tentar executá-la localmente, depois, lentamente, começar a mover diferentes componentes para caixas remotas e fazê-las funcionar a partir daí. Dessa forma, você descobre exatamente onde está o problema na sua sintaxe de sua tentativa original.

uso do psexec

    
por 11.01.2011 / 15:07
0

Em seu script, você pode copiar a coisa que deseja executar no disco da máquina local e, depois de executá-lo, excluí-lo. Use o robocopy.exe \ UNC-Path LocalDestionation para copiar o arquivo, executá-lo e, em seguida, excluí-lo. Lembre-se de que você sempre tem variáveis de ambiente como% Temp% para usar.

Para o seu caso rodando usando o Sysinternals PSExec você pode tentar fazer um morcego que rode todas as linhas de morcegos iniciadas com o PSExec. Você pode usar variáveis de ambiente no bastão usando o comando SET para coisas como o nome de usuário.

Alternativa Eu recomendo que você teste este software livre que permite executar comandos remotos muito fácil com uma interface gráfica simples: .

    
por 03.10.2011 / 06:55