2012-05-30 110 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

爲什麼不讓每臺計算機都將日誌文件發送到中央計算機?

相關問題