2016-05-25 5 views
1

powershellサブプロセスを初期化し、コマンドを送信して出力を受け取ることができます。Pythonからpowershell "session"を制御できます

普通のサブプロセスと少し違っています.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 

は、大雑把に(私はこれが動作しません知っていますが)私は、次のようなものを想像して話します。

これを達成するためにどのようにサブプロセスを操作することができますか?または、サブプロセスに豊富なインターフェースを提供する他のツールがありますか?おそらくねじれた。リアクター?

おかげで、 O.

+0

無関係:扱うことを確認してください

はそれが役に立てば幸い

を文字エンコーディングが正しく、[非ASCII Unicode文字を含んでいるかもしれないpoweshell出力をデコードしてpyth on string](http://stackoverflow.com/q/33936074/4279) – jfs

答えて

関連する問題