2016-05-25 5 views
1

Ich möchte einen Powershell-Subprozess initialisieren und in der Lage sein, Befehle an ihn zu senden und dann seine Ausgabe zu erhalten.Kann ich eine Powershell- "Sitzung" aus Python steuern

Etwas anders als die üblichen subprocess.Popen (['powershell', '...']) Anwendungsfall, weil ich idealerweise möchte meine Powershell-Sitzung beibehalten, während mein Skript ausgeführt wird.

Dies liegt daran, dass ich möglicherweise mehr als 100 Befehle ausführen muss (Get-ADUser, etc ..) und die Startkosten für das Laden der Powershell-Konsole und das Laden des Active Directory-Moduls ist ziemlich wichtig.

Grob gesagt war ich so etwas wie das Vorstellen folgende (obwohl ich bewusst bin, das nicht funktioniert):

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

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

ich keine offensichtliche Möglichkeit, dies zu tun, finden die subprocess Modul.

Hat jemand eine Idee, wie Subprozess manipuliert werden kann, um dies zu erreichen? Oder gibt es ein anderes Werkzeug, das eine reichhaltigere Schnittstelle zu Unterprozessen bietet? Möglicherweise twisted.reactor?

Danke, O.

+0

ohne Bezug: Sicherstellen, dass die Handhabung Zeichencodierung richtig, [Dekodieren Sie den Powshell-Ausgang möglicherweise mit Nicht-ASCII-Unicode-Zeichen in einem Pyth am String] (http://stackoverflow.com/q/33936074/4279) – jfs

Antwort

Verwandte Themen