Linux リモート コントロール Windows システム プログラム (3 つの方法)

Linux リモート コントロール Windows システム プログラム (3 つの方法)

場合によっては、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 ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • Windows および Linux で Python3 プログラムをパッケージ化する詳細な方法
  • Mac、Linux、Windows で Golang をクロスコンパイルする方法
  • Windows と Linux で Python 3 をパッケージ化する方法
  • Linux または Windows 環境での pytorch のインストールと検証 (runtimeerror 問題の解決)
  • 圧縮を使用して Windows の zip 圧縮パッケージを Linux システムにアップロードする方法の分析
  • Linux サーバーと Windows システム間でファイルをアップロードおよびダウンロードする方法
  • Windows 環境下の Linux 仮想マシンで MySQL データベースにアクセスする方法の詳細な説明
  • Windows と Linux 間のリモート デスクトップ接続

<<:  更新とデータ整合性処理のためのMySQLトランザクション選択の説明

>>:  Vue で動的なスタイルを実現するためのさまざまな方法のまとめ

推薦する

シンプルな HTML ビデオ プレーヤーを実装する方法

この記事では、シンプルな HTML ビデオ プレーヤーを実装する方法を紹介し、皆さんと共有します。詳...

HTML タグに類似: strong および em、q、cite、blockquote

XHTML には似た機能を持つタグがいくつかあります。もちろん、ここでの類似性とは意味の類似性を指...

Vue px to rem 構成の詳細な説明

目次方法1 1. 構成とインストールの手順:方法2方法3要約する方法1 1. 構成とインストールの手...

サーバーの購入と初期構築方法

しばらくサーバーいじってなかったけど、やることがなくなったのでモバイルワークスに行って海外サーバーを...

LED を使って Linux カーネルを使い始める方法を探る

目次序文LEDトリガー探索を始めるLEDデバイス登録LEDディレクトリ類推によって理解するクラスディ...

MySQL データベース操作 (作成、選択、削除)

MySQL データベースの作成MySQL サービスにログインしたら、create コマンドを使用し...

LinkedIn がウェブサイト閲覧を簡素化するためにリニューアル

ビジネス ソーシャル ネットワーキング サイト LinkedIn は最近、ナビゲーション バーとユー...

Vue3.0 手書き拡大鏡効果

達成される効果は、固定ズームが 2 倍になり、マウスが左側の画像領域に入るとマスク レイヤーが表示さ...

MySQL コピーテーブルと許可分析の 3 つの実装方法

テーブルを素早くコピーする方法まず、テーブル db1.t を作成し、1000 行のデータを挿入します...

デザインにおけるユーザーエクスペリエンスの背後にある8つのユーザー本能について話す

編集者注: この記事は、Teambition チームの @娄昊川 が寄稿したものです。Teambit...

jsはポップアップウィンドウをクリックすることでポップアップログインボックスを実装します

この記事では、ポップアップウィンドウをクリックしたときにポップアップログインボックスを実現するための...

MySQL でのワイルドカードを使用したファジークエリの実装に関する簡単な説明

MySQL データベースでは、あいまいクエリが必要な場合にワイルドカードを使用します。まず、演算子と...

HTMLテキストの一般的なイベントとメソッドの詳細な説明

イベントの説明onactivate: オブジェクトがアクティブ要素として設定されたときに発生します。...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

Nginx プロキシ転送構成を通じてクロスドメイン API プロキシ転送を実装する方法

序文WEB 開発では、クロスドメイン リクエストが頻繁に発生します。クロスドメインの問題を解決する方...