2013-11-25 67 views
1

我正在使用python製作一個應用程序。因爲我無法讀取遠程系統的文件數據。有人告訴我如何使用python讀取網絡中所有計算機的數據。使用python讀取網絡中所有系統的驅動器數據

而我已經使用wmi模塊進行遠程連接,但通過wmi,我無法訪問遠程計算機數據。

import wmi 

ip = '192.168.3.124' 
username = 'example' 
password = 'example' 
try: 
    connection = wmi.WMI(ip, user=username, password=password) 
except: 
    print "connection failed" 
+1

您的代碼在哪裏? – Raptor

+0

我編輯過我的帖子,代碼 – Amit

+0

'exceept'?你測試過了嗎? – beerbajay

回答

3

通過WMI模塊是無法讀取網絡系統中的所有文件,但我們可以通過兩種方式

1)安裝遠程系統驅動器到您的本地系統中讀取。

2)設置netuse虛擬連接和訪問文件

對於您的本地系統中安裝遠程系統的驅動器,使用下面的代碼

import win32api 
import win32net 
import win32netcon,win32wnet 

username='user' 
password='psw' 

try: 
    win32wnet.WNetAddConnection2(win32netcon.RESOURCETYPE_DISK, 'Z:','\\\\192.168.1.18\\D$', None, username,password, 0) 
    print "connection established successfully" 
except: 
    print "connection not established" 

連接後可以讀取所有文件的數據

for root, dirnames, filenames in os.walk('\\\\192.168.1.18\D$'): 
     for filename in filenames: 
      match=os.path.join(root, filename) 
      datafile = file(match) 
      for line in datafile: 
       print line 

2)for s et虛擬連接使用以下代碼

import win32api 
import win32net 

ip = '192.168.1.18' 
username = 'ram' 
password = '[email protected]' 

try: 
    use_dict={} 
    use_dict['remote']=unicode('\\\\192.168.1.18\C$') 
    use_dict['password']=unicode(password) 
    use_dict['username']=unicode(username) 
    win32net.NetUseAdd(None, 2, use_dict) 
except: 
    print "connection not established" 
+0

它正在工作,我可以閱讀,但我不想在本地系統中安裝。你能描述虛擬網絡嗎? – Amit

+0

我用虛擬netuse連接更新了代碼。現在您可以訪問網絡中的所有計算機數據。 –

+0

感謝您解決我的問題。 – Amit