1

リモート Windows ホスト (管理者権限を持つ Windows ドメイン環境) で netsh コマンドを実行しようとしています。次のコードはローカル ホストでは問題なく動作しますが、Python を使用してリモート ホストでも実行したいと考えています。

import subprocess

netshcmd=subprocess.Popen('netsh advfirewall show rule name=\”all\”', shell=True, stderr=subprocess.PIPE, stdout=subprocess.PIPE )
output, errors =  netshcmd.communicate()

問題は、リモートホストへの接続を開始してからサブプロセスコマンドを実行するためにどのように/どの方法を使用すればよいかわからないことです。ssh または pstools を使用できないため、可能であれば既存の pywin32 モジュールを使用して実装を試みたいと考えています。

過去に WMI モジュールを使用したことがあり、これによりリモート ホストのクエリが非常に簡単になりましたが、WMI を介してファイアウォール ポリシーをクエリする方法が見つからなかったため、サブプロセスを使用しています。

4

2 に答える 2

1

まず、pxssh モジュールを使用してリモート ホスト マシンにログインします。Python : Paramiko を使用して、ローカル PC から remoteA、remoteb、remote c にリモートする

Windows のリモート ログイン:

child = pexpect.spawn('ssh tiger@172.16.0.190 -p 8888')
child.logfile = open("/tmp/mylog", "w")
print child.before
child.expect('.*Are you sure you want to continue connecting (yes/no)?')
child.sendline("yes")

child.expect(".*assword:")
child.sendline("tiger\r")
child.expect('Press any key to continue...')
child.send('\r')
child.expect('C:\Users\.*>')
child.sendline('dir')
child.prompt('C:\Users\.*>')

Python - Pxssh - リモート サーバーにログインしようとするとパスワード拒否エラーが発生する

netshコマンドを送信します

于 2013-04-15T12:23:35.167 に答える