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 に答える