2012-04-11 13 views
2

Ich habe eine .bat-Datei auf einem Remote-Computer. Ich möchte es über HTTP-Aufruf aufrufen. Ich möchte keine Änderungen an der Remote-Maschine vornehmen. Gibt es eine Möglichkeit, es mit Java und http zu tun?Aufrufen einer Remote-.bat-Datei über http

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

Das oben genannte funktioniert gut, um eine .bat-Datei auf dem lokalen Computer aufzurufen. Ich hätte auch nichts dagegen, andere Möglichkeiten in Betracht zu ziehen, aber es wäre die erste Wahl, es über HTTP aufzurufen.

EDIT: Ich benutze Paramiko, um dies jetzt zu tun. Allerdings kann ich die Remote-Befehle nicht an der Eingabeaufforderung ausführen.

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 

Irgendwie sagt es AllowDesktopAccess gescheitert

Antwort

4

Sie benötigen einen Service auf dem entfernten Rechner, zum Beispiel eines HTTP-Server, der auf Nachfrage zur Ausführung dieses Skripts (zB via cgi) oder einen SSH-Server so konfiguriert ist, Sie können eine Verbindung herstellen, um den Befehl auszugeben.

Da Sie Windows verwenden (nehme ich an), dann ist PsExec möglicherweise der Dienst, den Sie benötigen.

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

Verwandte Themen