場合によっては、Windows システム上のプログラムを Linux 上でリモートで実行する必要があります。 方法1: Python の winrm モジュールを使用する場合、前提条件として、事前に winrm サービスを設定する必要があります。設定方法は Baidu で検索してください。winRM サービスは、Windows Server 上の PowerShell のリモート管理サービスです。 Python スクリプトは、winRM モジュールに接続して Windows コマンド ラインを操作します。 winrm をインポートする def cmd_views(ip,cmd_comand): win = winrm.Session('http://'+ip+':5985/wsman', auth=('user', 'password'))#パラメータはユーザー名とパスワードです r = win.run_cmd(cmd_comand) # cmdコマンドを実行します = return r.std_out # 取得した情報を出力します ip="xxx.xxx.xx.xx" cmd_comand=r"ipconfig"#コマンドを実行 a=cmd_views(ip, cmd_comand) print(cmd_comand) 印刷(タイプ(a)) 印刷(a) 私のテストの結果、このモジュールはいくつかの単純なコマンド、つまり基本的に入力後すぐに結果に応答できる種類のコマンドしか実行できないことがわかりました。少し複雑な状況に遭遇すると、プロセスがクラッシュします。 方法2: 操作は、Python の telnetlib ライブラリを通じて実行されます。前提条件は、Windows システムで Telnet 設定を行うことです。1. Telnet クライアントとサーバーをインストールします。 2 Telnet ユーザーの権限を設定します。方法が分からない場合は、Baidu で検索して自分で設定してください。 # -- コーディング: utf-8 -- telnetlib、time をインポートする def telnetlib_views(IPアドレス、ユーザー、パスワード、コマンド名): tn = telnetlib.Telnet(IPアドレス) a=tn.read_until(b'ログイン:') tn.write(user.encode('ascii') + b'\r\n') tn.read_until(b'パスワード:') 時間.睡眠(5) tn.write(password.encode('ascii') + b'\r\n') 時間.スリープ(2) tn.write(cmdname.encode('ascii') + b'\r\n') tn.close() cmdname=r'ifconfig'#コマンドtelnetlib_views(ipaddress="xxx.xxx.xxx.xxx", user="xxx", password="xxxx",cmdname=cmdname)を実行 コマンド呼び出しが完了し、プログラムが終了するまで待ちます。 方法3 wmi モジュールを使用すると、欠陥は windows-windows を通じてのみ解決でき、linux-windows は機能せず、linux 関連のモジュールをインストールできません。 wmi をインポートする def sys_version(IPアドレス、ユーザー、パスワード、コマンド名): conn = wmi.WMI(コンピュータ=IPアドレス、ユーザー=ユーザー、パスワード=パスワード) 試す: cmd_callbat = r"cmd /c call %s" % cmdname print("現在実行されている bat コマンドは:",cmd_callbat) conn.Win32_Process.Create(コマンドライン=cmd_callbat) except 例外を e として: 印刷する cmdname= r"xxx.bat"#コマンドsys_version(ipaddress="xxx.xx.xx.xx", user="xx", password="xxx",cmdname=cmdname)#を実行します コマンドが呼び出され、待機せずにプログラムが終了します。これは方法 2 とは異なります。欠点は、ライブラリが Linux にインストールできないことです。 アプリケーション シナリオは実用的です。Windows システム上の PDF ファイルを Linux に転送するために、Linux 上でプログラムを実行する必要がありますか? # -- コーディング: utf-8 -- winrm をインポートする ジョブ()を定義します: # 接続を取得します t = winrm.Session("xxx.xx.xx.xx", auth=("xx", "xxx")) # a.pdf の内容を取得します r = t.run_cmd(r'type C:\xxx\xxx\Desktop\test\a.pdf') # 内容を文字列に変換する s0 = str(r.std_out) # 印刷(s0) open("c.pdf","wb") を f として実行します: f.write(s0) print("書き込みが完了しました") 仕事() 要約する 上記は、私が皆さんに紹介した Linux から Windows システムをリモート制御するプログラム (3 つの方法) です。皆さんのお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: 更新とデータ整合性処理のためのMySQLトランザクション選択の説明
>>: Vue で動的なスタイルを実現するためのさまざまな方法のまとめ
日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...
WeChatアプレットの簡単な計算機は参考用です。具体的な内容は次のとおりです。 1. はじめに1....
1. 背景1.1 問題点最近の製品テスト レポートでは、PKI ベースの認証方法の使用が推奨されて...
目次1. イベントとは何ですか? 2. イベントの使い方3. バインドタップとキャッチタップの違い4...
1. リポジトリイメージをダウンロードする docker プルレジストリ 2. プライベートウェアハ...
この記事では、 Dockerコンテナ ( docker-composeを使用してオーケストレーション...
メモリリークとは何ですか?メモリ リークとは、新しいメモリが作成されたが、解放またはガベージ コレ...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
コンテナのライフサイクルコンテナランタイムのライフサイクルコンテナは、分離特性を持つプロセスのセット...
この記事では、画像拡大鏡効果を実現するためのJSの具体的なコードを参考までに紹介します。具体的な内容...
目次1. データベース論理バックアップとはどのようなバックアップですか? 2. よく使われる論理バッ...
原因このブログを書いた理由は、今日Leetcodeの日課問題をやっていたからです。文字列を整数(at...
問題を見つける今日は、vue ファイルにローカル画像を導入する際に問題が発生したので、この記事を書き...
序文最近、弊社では mbp の設定をしており、ssh を使うことが多くなりました。複雑なコマンドを書...
DB ベンチマーク テストを実行する場合、qps と tps はデータベースのパフォーマンスを測定す...