我可以控制一个powershell" session"来自Python

时间:2016-05-25 15:58:35

标签: python powershell subprocess

我想初始化一个powershell子进程,并能够向它发送命令,然后接收它的输出。

与通常的subprocess.Popen([' powershell',' ...'])用例略有不同,因为理想情况下我希望我的PowerShell会话在我的脚本中保持不变正在运行。

这是因为我可能需要运行100多个命令(Get-ADUser等等),并且加载powershell控制台和加载Active Directory模块的启动成本非常高。

粗略地说我想象的是以下内容(虽然我知道这不起作用):

class ActiveDirectory:
   def __init__(self):
      self.proc = subprocess.Popen(['powershell'], stdin.., stdout..)

   def run_command(self, command):
      output = self.proc.communicate(command)
      return output

我无法使用子进程模块找到一种明显的方法。

有没有人知道如何操作子进程来实现这一目标?或者是否有其他工具可以为子流程提供更丰富的界面?可能是twisted.reactor?

谢谢, O操作。

1 个答案:

答案 0 :(得分:1)

您可以尝试合并这两篇文章:

希望它有所帮助:

Keep a subprocess alive and keep giving it commands? Python

Run PowerShell function from Python script