今回は、リモートのWindowsマシンでコマンドを実行することについて質問しています。ここでもっと説明させてください。
** Pythonがインストールされているマシンがあり、PowerShellおよびcmdコマンドを実行したい、またはcmdファイルをリモートWindowsマシンに送信して、そこで実行できるようにし、エラー、stdoutなどのすべての出力を取得できるようにしたい発射機に戻ります。
Pythonからリモートマシンをリモートで管理したいように。また、可能であれば、Pythonと同時に複数のマシンでコマンドをリモートで起動できますか。
他のシステムにはPythonがインストールされていないことに注意してください。****
5 に答える
これは地雷原のようなものですが、これを行う「正しい」方法 (python を使用せずにリモートの win マシンを制御する python) は、WMI または WRM のライブラリを使用することです。
Tim Golden (Python-on-Windows の世界の権威) による WMI モジュール、Dell のWSMANライブラリ、およびpywinrm モジュールがあります。毒を選んでください - それらにはそれぞれ独自の弱点があります (WRM を使用する前に、サーバーで有効にする必要があります。これには追加のソフトウェアは必要ありませんが、すべて標準の Windows です。WMI は DCOM で動作するため、 DCOM セキュリティなどを理解する必要があります)。
khaglerが提案したようssh
に、これに使用できます。しかし、Python を使用するとリモート側でより多くの制御が可能になるため、Python を両側にインストールすることを好みます。
たとえばssh
、2 台のコンピューター間に単一のチャネルを提供するだけです。つまり、有線で送信するには、リモート側で折り畳まなければstdout
なりません。stderr
リモート Python サーバーを使用すると、より複雑なスクリプトを実行でき、公開したいものを正確に制御でき (リモート アクセスを許可すると、任意のコマンドを実行できます)、エラー処理がはるかに簡単になります。
または 2 つの組み合わせ: リモート コンピューターに Python をインストールし、 を使用ssh
して Python スクリプトを開始します。その後、コマンド ライン/シェル インターフェイスの制限なしで、カスタム プロトコルを使用して通信できます。scp
を使用して、新しいスクリプトをリモートでインストールすることもできます。
と組み合わせてPyro4のようなものを使用してみることができsubprocess.popen
ます。
Pyro4 はリモート メソッド呼び出しのフレームワークであり、subprocess.popen
基盤となる OS プロセスの作成に使用されます。