2017-04-12 9 views
0

リモートWindowsマシンでコマンドを実行するスクリプトを作成し、そのコマンドから出力を取得します。問題は、Windowsで組み込みのソフトウェアを使用したいので、残念なことにSSHを使用することはできません。 "wmi"ライブラリが見つかりました。マシンにログインしてコマンドを実行できますが、そのコマンドから出力を受け取る方法はわかりません。リモートWindowsマシンでコマンドを実行し、Pythonで出力を取得

import wmi 

c = wmi.WMI("10.0.0.2", user="administrator", password="admin") 
process_startup = c.Win32_ProcessStartup.new() 
process_id, result = c.Win32_Process.Create (r'cmd /c ping 10.0.0.1 -n 1 > c:\temp\temp.txt') 
if result == 0: 
    print("Process started successfully: %d" % process_id) 

print(result) 

出力をファイルにリダイレクトしようとしましたが、テキストファイルコンテンツを取得する方法が見つかりませんでした。

wmiやその他のPythonライブラリを使用して出力ファイルやテキストファイルのコンテンツを取得する方法はありますか?

答えて

0

RPyCが適切であると記述しているアプリケーションについては、適切です。これはPythonリモートサーバーで、コマンドに接続してコマンドを発行できます。 Pythonがターゲットマシン上でできることは何でも行います。したがって、たとえば、subprocessモジュールを使用してWindowsコマンドを実行し、出力をキャプチャして結果を返すことができます。

安全なことは、リモート機能をサービスとして公開することです。基本的にRPyCがあなたのために実行できるPythonスクリプトです。しかし、RPyC classic modeを使うこともできます。これは、リモートマシン上でPythonセッションを直接実行するのとほぼ同じです。クラシックモードではリモートマシン上で何かを実行できるので、セキュリティを心配していない場合にのみ使用するべきですが、プロトタイプ作成には便利です。

+0

この提案をお寄せいただき、ありがとうございます。私は多くのWindowsマシンを持っているので、追加の設定が不要な組み込みのソリューションを使用してこのケースを解決しようとしました。私がwmiでそれをする方法を見つけることができない場合は、私はおそらく、このソリューションを使用する:) – Garzum

関連する問題