2013-09-29 93 views
0

我有一個使用paramiko和pysphere.this腳本寫在linnux box.i有一些PowerShell腳本在Windows機器上,我必須一個接一個地運行(每個腳本明顯結束後),但這裏的重點是通過我的pythonscript,它不在Windows機器上運行powershell腳本。只是幫助。 PS;我必須在Windows上運行python腳本fromlinux和powershell scriupts。 這裏是代碼的運行PowerShell腳本的一個片段:遠程PowerShell腳本在沒有運行在Linux中的Python腳本的窗口

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 

我懷疑是否子會工作。

請注意,上面給出的粗體打印給出了正確的腳本來運行。有很多powershell腳本在fo der中,因此循環遍歷它並運行它們中的每一個。

任何幫助,將不勝感激,這個東西是吃了我的頭砍掉..... argghhhhhhhh ..

乾杯, NJ

回答

2

我運行PowerShell命令直接使用的paramiko:

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。