0

我有一个使用 paramiko 和 pysphere 编写的 python 脚本。这个脚本在 linnux 框中。我在 windows 机器上有一些 powershell 脚本,我必须一个接一个地运行(在每个脚本显然结束之后),但这里的重点是通过我的pythonscript 它没有在 Windows 机器上运行 powershell 脚本。请帮助。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

我怀疑 subprocess 是否会起作用。

请注意,上面给出的粗体字给出了正确的脚本来运行。在 fo;der 中有许多 powershell 脚本,所以循环通过它并运行它们中的每一个。

任何帮助将不胜感激,这件事正在吞噬我的脑袋.....argghhhhhhhh ..

新泽西州干杯

4

1 回答 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 机器。使用 cygwin sshd 服务器进行 ssh。

于 2013-10-01T07:03:18.327 回答