python - 如何在 Windows 上使用 Python 访问远程文件系统?

标签 python windows networking

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

是否有用于访问外部 Windows 机器的模块? 以前有人做过这样的事吗?

我特别希望登录 Windows 7 机器,不是 unix。

我们还假设我要登录的每台计算机都安装并启用了远程桌面。我也不担心网络安全或加密,因为这些文件不是 secret 的。默认情况下,Windows 机器上没有安装 SSH 吗?

最佳答案

另一边一定有什么东西可以让你说话。这限制了您在每台机器上设置“服务器”、安装真实服务器(即 sshd)、自己构建“服务器”并安装它,或者使用操作系统的内置和事件功能。

基于此,你想在这些机器上设置什么样的系统?它需要做什么?只是读取一个预先指定的文件列表的内容?该列表会改变吗?

  • 一种解决方案是打开 telnet,然后使用 paramiko 或 twisted 来 谈论它。这当然不是很安全
  • 接下来,设置一个 samba 共享,并远程访问该文件夹。这个 也不安全,尽管不如 telnet 安全
  • 你可以找到一个 ssh 守护程序端口并运行它,如果你愿意的话
  • 来自 sysinternals 的 Psexec 可能有效
  • 使用 twisted 构建具有您需要的功能的服务器应用
  • 使用 ncat 监听端口并生成 cmd 提示符

请注意,大多数远程访问 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' 作为搜索路径,然后观看魔术。

关于python - 如何在 Windows 上使用 Python 访问远程文件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820376/

相关文章:

python - 如何将不规则间隔的 x 和 y 坐标张量平均到具有特定单元大小的网格中?

windows - 使用模式匹配删除 windows 文件夹

windows - 如何从 node.js 写入 Windows 下的 NUL 设备?

python - 在 Django Rest Framework GET 调用中自定义 JSON 输出

python - 如何在 pandas 的数据框中绘制箭头?

c# - 如何设置备用 DNS 服务器?

iphone - 如何衡量在 iOS 中花费的网络时间的分割?

c - 如何使用libpcap嗅探PPP数据包?

python - 删除 pandas 中多索引数据框中的重复项

python - 文件在 Python 3.4 中存在于 Windows 与 Linux 上