将batch file发送到Windows机器,并执行它

我知道PsExec非常适合通过networking上的计算机发送文件,然后在远程计算机上执行它,但是我无法使用PsExec,因为我正在开发一个软件,而且我不能将PsExec作为依赖项出于法律上的原因等)。

在远程计算机上实现执行部分的最简单方法是什么? 这真的很难吗? 我已经用xcopy复制.bat文件…我只需要运行它。

您可以使用WMI远程执行脚本或二进制文件。 这是一个用VBS编写的最简单的例子,它运行位于远程计算机FCSD-ISC1上的batch fileC:\test.cmd test.cmd

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

本“脚本专家”文章将对此进行更详细的介绍 。

我build议安装C $共享,testing。\ Temp目录(如果不存在则创build),然后在那里复制。 (有一个“pipe理员$”pipe理份额,但我build议不要使用它。)

您可以通过net use * \\servername\c$ /user:domain/account在命令行执行此操作,或者将驱动器指定为net use t: \\servername\c$ /user:domain/account

这应该在MSDN中得到很好的logging。 如果为脚本编写脚本,Microsoft Script Center存储库中有很多示例

我知道是不相关了,但为了完整性(这个网页是高谷歌)我会在这里添加RemCom,这是Psexec的开源版本得到它在这里: http : //sourceforge.net/projects/rce /