Ich habe ein Python-Skript, das mit paramiko und geschrieben wurdepysphere.this Skript ist in linnux box. Ich habe einige Powershell-Skripte auf Windows-Rechnern, die ich nacheinander ausführen muss (nachdem jedes Skript offensichtlich beendet ist) Windows-Maschine. PS: Ich muss das Python-Skript von Linux und Powershell unter Windows ausführen. Hier ist ein Codeausschnitt zum Ausführen von Powershell-Skripts:
target_vm1 = connect_Esxi_Server(return_list[0])
print "Again connected to vm:" + return_list[0]
target_vm1.login_in_guest(vmUser,vmPass)
list_scripts = target_vm1.list_files(VM_SCRIPT_LOCATION)
for f in list_scripts:
size = f["size"]
**if size <> 0:**
paths = f["path"]
print paths
#for all_scripts in paths:
*****print "script running is :" , paths*****
path_l = os.path.join(VM_SCRIPT_LOCATION + "\"+ paths)
*****print path_l*****
run_script =
subprocess.Popen([r"c:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe",". path_l"], shell=True)
result = run_script.wait()
print "result is:", result
Ich bezweifle, ob der Teilprozess funktionieren wird.
Bitte beachten Sie, dass die oben angegebenen fett gedruckten Ausdrucke das richtige Skript zum Ausführen geben. Es gibt viele Powershell-Skripts innerhalb des Vorgängers, so dass Sie durchlaufen und jedes von ihnen ausführen.
Jede Hilfe wäre dankbar, dieses Ding frisst meine Köpfe ab ..... argghhhhhhhh ..</ strong>
Prost, NJ
Antworten:
2 für die Antwort № 1Ich führe Powershell-Befehle direkt mit paramiko aus:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("10.10.0.2", username="vipul", password="password")
cmd = "powershell -InputFormat none -OutputFormat text echo Hello"
stdin, stdout, stderr = self.ssh.exec_command(cmd)
print stdout.readlines()
Hier ist 10.10.0.2 meine Windows-Maschine. Cygwin sshd server für ssh verwenden.