通过http调用远程.bat文件

时间:2012-04-11 17:58:36

标签: java python http batch-file remote-access

我在远程计算机上有一个.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失败

1 个答案:

答案 0 :(得分:4)

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

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

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