2

我在远程机器上有一个 .bat 文件。我想通过http调用来调用它。我不想在远程机器上进行任何更改。有没有办法使用java和http来做到这一点?

String command = "cmd /C start C:/Users/abc/Desktop/test.bat";
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(command);

以上方法可以很好地调用本地机器上的 .bat 文件。我也不介意考虑其他方式,但是通过 http 调用它是首选。

编辑:我现在正在使用 paramiko 来执行此操作。但是,我无法在命令提示符下运行远程命令。

ssh = paramiko.SSHClient()

print "Enter the IP address"
ip = raw_input("ip>")
print "Enter the username"
user = raw_input("username>")
print "Enter the password"
pwd = raw_input("password>")

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, username=user, password=pwd, allow_agent = False)
print "connection successfull"
i, o, e = ssh.exec_command("echo test") # example command
s = e.read()
if s: # an error occurred
    raise RuntimeError, s
result = o.read()
print result

不知何故,它说AllowDesktopAccess 失败

4

1 回答 1

4

您需要远程机器上的服务,例如配置为按需运行此脚本的 http 服务器(例如,通过 cgi)或可以连接以发出命令的 ssh 服务器。

由于您使用的是 Windows(我假设),因此 PsExec 可能是您需要的服务。

http://technet.microsoft.com/en-us/sysinternals/bb897553

于 2012-04-11T18:08:14.583 回答