1

ネットワーク上のすべてのコンピューターにアクセスし、それらにログインして、いくつかのログファイルを読み取るPythonスクリプトを作成しています。ソケットほど低レベルのものは使いたくないのですが、必要なら使えます。私の問題はこの質問に似ていますが、同じではないことに気づきました。

外部のWindowsマシンにアクセスするためのモジュールはありますか?誰かが以前にこのようなことをしたことがありますか?

私は特にUNIXではなくWindows7マシンにログインすることを考えています。

Let's also assume that each computer I want to log into has Remote Desktop installed and enabled. I'm also not worried about network security or encryption because these files are not confidential. Windows machines don't have SSH installed on the by default do they?

4

3 に答える 3

3

あなたが話すために向こう側に何かがなければなりません。これにより、各マシンに「サーバー」をセットアップするか、実サーバー (つまり sshd) をインストールするか、自分で「サーバー」を構築してインストールするか、OS の組み込みのアクティブな機能を使用するかのいずれかに制限されます。

これに基づいて、これらのマシンにどのようなシステムをセットアップしますか? 何をする必要がありますか?事前に指定されたファイル リストの内容を読み取るだけですか? そのリストは変わりますか?

  • 解決策の 1 つは、telnet を有効にして、paramiko または twisted を使用して通信することです。もちろん、これはあまり安全ではありません
  • 次に、samba 共有をセットアップし、フォルダーにリモートでアクセスします。これも安全ではありませんが、telnet ほどではありません。
  • ssh デーモン ポートを見つけて実行することもできます。
  • sysinternals の Psexec が機能する可能性があります
  • ツイストを使用して、必要な機能を備えたサーバー アプリを構築する
  • ncat を使用してポートをリッスンし、コマンド プロンプトを生成する

ウィンドウにリモートでアクセスするためのソリューションのほとんどは...貧弱であることに注意してください。最良の解決策は、おそらく自分でロールバックすることですが、それは大変な作業であり、間違いを犯す可能性があります。

また、Windows 7 は厳密にはマルチユーザー フレンドリーではありません。個々のプロセスは個別のユーザーとして実行できますが、OS は複数のユーザーが同時にログインすることをサポートしていません。誰かが「ユーザー」になり、他のすべての人は、異なる資格情報セットを持つ単なるプロセスです。

これは、技術的なものというよりも、M$ 側の人為的な制限です。これを実際に確認するには、ユーザーがローカルにログインしているときに RDP でログインしてみてください。楽しい時間。

編集によると、最も簡単な方法は、ボックスに samba 共有をセットアップすることです。

この共有を設定した後:

with open(r'\\myCompNameOrIP\C\windows\logs\logfile.txt','rb') as logfile:
    loglines = logfile.readlines()

または、ここにあるgencatサンプルを使用することもできます。それを検索パスとして指定し、魔法を見るだけです。r'\\myCompNameOrIP\C\windows\logs\*.txt'

于 2012-05-30T17:20:45.743 に答える
0

Ubuntu からは、samba を使用します。

Bash の場合: gvfs-mount smb://them/folder

ここで、名前、ドメイン、パスワードを指定します

次に、Pythonで:

folder = '/home/me/.gvfs/folder on them'

os モジュールを使用して、内部のフォルダーとファイルを読み取りました。

私は中小企業環境で働いています。

于 2012-05-30T16:45:04.550 に答える
0

各コンピュータがログ ファイルを中央のコンピュータに送信しないのはなぜですか。

于 2012-05-30T17:35:59.387 に答える