2012-05-30 75 views
1

我正在写一个Python脚本来访问网络上的所有计算机,登录到它们并阅读一些日志文件。我不想使用像socket这样低级的东西,但是如果必须的话,我可以。我意识到我的问题类似于this question,但不一样。如何在Windows上使用Python访问远程文件系统?

是否有任何访问外部Windows机器的模块? 有没有人做过这样的事情?

我专门找登录到Windows 7的机器,不是Unix。

让我们也假设,我想登录到每个计算机安装了远程桌面并启用。我也不担心网络安全或加密,因为这些文件不是保密的。 Windows机器默认没有安装SSH吗?

+0

你在做什么?我与XP和W7交流。文件夹必须共享。 –

回答

3

必须有东西在另一边为你说话。这限制了您在每台机器上设置“服务器”,安装真实服务器(即sshd),自己构建“服务器”并安装它,或者使用操作系统的内置和活动功能。

基于这一点,什么样的系统你要建立在这些机器?它需要做什么?只需阅读预先指定的文件列表的内容?这个清单会改变吗?

  • 一个解决方案是打开telnet,并使用paramiko或扭曲到 通过它。这当然不是很安全
  • 接下来,建立一个samba共享,并远程访问该文件夹。这 也是不安全的,虽然比不上的telnet
  • 你可以找到一个ssh守护进程端口和运行,如果你愿意的话
  • PSEXEC从Sysinternals的可能工作
  • 使用双绞线建立与服务器应用程序功能需要
  • 使用NCAT侦听端口上,并生成一个命令提示符

要小心,大部分用于远程访问Windows的解决方案是...差。最好的解决方案可能是推出自己的产品,但这很难,你可能会犯错误。

此外,Windows 7是不准确多用户友好。单独的进程可以作为单独的用户运行,但操作系统不支持让多个用户同时登录。有人将成为“用户”,而其他人只是一个拥有不同凭证集的流程。

这是M $的部分比任何技术更人为的限制。要看到这一点,请尝试在用户本地登录时使用RDP登录。娱乐时间。

根据您的编辑,最简单的方法就是在箱子上设置一个samba共享。

后这一比例设置:

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

或者你可以使用gencat样品中发现here。只要给它r'\\myCompNameOrIP\C\windows\logs\*.txt'作为搜索路径并观看魔术。

0

从Ubuntu的我使用Samba:

在bash: GVFS贴装SMB://他们/文件夹

这里,我给的名称,域名和密码

然后在python:

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

os模块我看了里面的文件夹和文件。

我正在小型商业环境中工作。

0

为什么不让每台计算机都将日志文件发送到中央计算机?

相关问题