2014-06-16 110 views
1

我有一個Python腳本,我想運行PowerShell cmdlet。我在網上看過,唯一能找到的就是運行一個PowerShell腳本,但我覺得要爲腳本編寫一個cmdlet,然後將它用於執行需要比需要更長的時間。在Python腳本中運行PowerShell cmdlet

我以下列方式使用subprocess.Popen嘗試:

cmd = subprocess.Popen(['C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe', ps_cmdlet]) 

但ps_cmdlet是用PowerShell命令作爲其值一個python字符串變量。所以,我顯然得到了「沒有這樣的文件或目錄」錯誤。有沒有辦法在python腳本中運行powershell cmdlet而不使用IronPython之類的東西?

謝謝!

回答

0

請嘗試以下(ps_cmdlet是一個Python字符串):

subprocess.call(ps_cmdlet) 

編輯:下面是一個例子將輸出你的機器的IP配置到PowerShell的:

ps_cmdlet = 'ipconfig' 
subprocess.call(ps_cmdlet) 

另一個編輯:另一種方法適用於我的是:

ps_cmdlet = 'whatever command you would enter in powershell' 
p = subprocess.Popen(ps_cmdlet,stdout=subprocess.PIPE) 
p.communicate() 
+0

我仍然收到「沒有這樣的文件或目錄錯誤」。 我只是想: 進口子 cmdlet的=「啓動服務lanmanserver」 subprocess.call(小命令) – eltaco431

+0

確定的誤差在subprocess.call出現? –

+0

回溯(最近一次通話最後): 文件「test.py」,第4行,在? subprocess.call(ps_cmdlet) 文件「/usr/lib64/python2.4/subprocess.py」,第419行,致電 返回Popen(* args,** kwargs).wait() 文件「/ usr/lib64下/的python2.4/subprocess.py」,線550,在__init__ errread,ERRWRITE) 文件 「/usr/lib64/python2.4/subprocess.py」,線路996,在_execute_child 加註child_exception OSERROR: Errno 2]沒有這樣的文件或目錄 – eltaco431