/ / LinuxでPythonスクリプトを実行していないWindows上のリモートPowerShellスクリプト-linux、python-2.7、サブプロセス、powershell-v2.0、paramiko

Linuxでのpythonスクリプトを実行していないWindows上のリモートpowershellスクリプト - linux、python-2.7、subprocess、powershell-v2.0、paramiko

paramikoを使用して記述されたPythonスクリプトがあり、pysphere.thisスクリプトはlinnux box.iにWindowsマシンにいくつかのPowerShellスクリプトがあり、それを次々に実行する必要があります(各スクリプトが明らかに終了した後) windows machine.Kindlyヘルプ。 PS;私は、Windows上でLinuxおよびPowerShellスクリプトからPythonスクリプトを実行する必要があります。 以下に、PowerShellスクリプトを実行するためのコードスニペットを示します。

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

サブプロセスが機能するかどうか疑問です。

上記の太字は、実行するための正しいスクリプトを提供していることに注意してください。

任意の助けをいただければ幸いです、これは私の頭を食い尽くしています........</ strong>

乾杯、 ニュージャージー州

回答:

回答№1は2

paramikoを使用してpowershellコマンドを直接実行します。

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()

ここで10.10.0.2は私のWindowsマシンです。 sshにcygwin sshdサーバーを使用します。