发送批处理文件到 Windows 机器并执行它

发送批处理文件到 Windows 机器并执行它

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

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

答案1

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

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

更详细的内容见这篇脚本专家文章

答案2

我建议安装 C$ 共享,测试 .\Temp 目录(如果不存在则创建),然后复制到那里。(有一个“admin$”管理共享,但我建议不要使用它。)

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

MSDN 中应该对此有详尽的说明。如果要编写脚本,Microsoft Script Center Repository 中有很多示例

答案3

我知道这不再相关,但为了完整性(这个页面在谷歌上排名很高),我将在这里添加 RemCom,它是 Psexec 的开源版本,可以在这里获取: http://sourceforge.net/projects/rce/

相关内容