Envie um arquivo em lote para uma máquina Windows e execute-o

1

Eu sei que o PsExec é perfeito para enviar arquivos através de um computador em uma rede e executá-los naquele computador remoto, mas não posso usar o PsExec porque estou desenvolvendo um software e não posso ter o PsExec como uma dependência (por motivos legais, etc.).

Qual é a maneira mais fácil de obter a parte de execução em um computador remoto? Isso é tão difícil assim? Eu já estou copiando o arquivo .bat com xcopy ... Eu só preciso executá-lo.

    
por Luca Matteis 01.09.2010 / 11:10

3 respostas

5

Você pode executar um script ou binário remotamente usando o WMI. Este é um exemplo mínimo, escrito em VBS, que executa o arquivo em lote C:\test.cmd localizado no computador remoto FCSD-ISC1 .

strComputer = "FCSD-ISC1"
Set objWMIService = GetObject("winmgmts:\" & strComputer & "\root\cimv2:Win32_Process")
objWMIService.Create "C:\test.cmd", null, null, intProcessID

Isso é abordado com mais detalhes em este artigo do Scripting Guy .

    
por 01.09.2010 / 14:22
2

Eu recomendo montar o compartilhamento C $, testando o diretório. \ Temp (criando se ele não existir) e copiando lá. (Há um compartilhamento administrativo "admin $", mas eu recomendo não usá-lo.)

Você pode fazer isso a partir da linha de comando via net use * \servername\c$ /user:domain/account ou especifique uma unidade como net use t: \servername\c$ /user:domain/account

Isso deve estar bem documentado no MSDN. Se estiver escrevendo para um script, há muitos exemplos no Repositório do Microsoft Script Center

    
por 01.09.2010 / 13:12
0

Eu sei que não é mais relevante, mas por uma questão de completude (esta página é alta no google) eu vou adicionar aqui RemCom, que é uma versão open source do Psexec venha aqui: link

    
por 10.03.2011 / 05:29