2014-06-16 108 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