2010-01-12 69 views
0

我需要獲得公司所有在他們的計算機上擁有本地管理員權限的人員列表。我們在每臺機器上都有一個名爲「管理員」的組。我可以從Active Directory中獲得的所有計算機的列表,包括:如何使用Python從網絡上的計算機獲取本地管理員?

import active_directory 

for computer in active_directory.search ("objectCategory='Computer'"): 
    print computer.displayName 

現在,我想我需要每個計算機名稱,並在其反饋我想也許讀每臺計算機上的遠程註冊表和尋找SID--據說是SID的「S-1-5-domain-500」會給我一份計算機上本地管理員的名單。我所做的:

import _winreg 
COMPUTER_NAME = "FakeComputerName" 
KEY_PATH = r"System\CurrentControlSet\Control\ComputerName\ComputerName" 
HKLM_remote = _winreg.ConnectRegistry (r"\\%s" % COMPUTER_NAME, _winreg.HKEY_LOCAL_MACHINE) 
hKeyRemote = _winreg.OpenKey (HKLM_remote, KEY_PATH, 0, _winreg.KEY_READ) 
value, type = _winreg.QueryValueEx (hKeyRemote, "ComputerName") 
print "Remote computer name is", value 
Remote computer name is FakeComputerName 

如何結合這讓我需要什麼?這些會一起工作嗎?這是最好的方式去做這件事嗎?一旦我得到這個工作,我可以把它寫入一個文件,並添加例外,如計算機不在它寫入的網絡上,然後移動到下一臺PC上。也許使用win32security?

我不知道要使用什麼註冊表項,或者即使它可以工作。我今天花了大約5個小時,而且我還在學習Python。我不知道VB,這是我在網上看到的大部分代碼。

謝謝!

回答

0

這是從這個操作後的數據將被操縱?如果這是一個人工查看的手動掃描,那麼你就是在反思它。

只需使用網絡掃描儀爲您處理它,如this one

0

我不確定細節,但聽起來你可能想看看WMI包。

回來時,我正在玩COM和Windows註冊表並跑過它。看起來它看起來好像有點改進了。

這是Windows的參考文檔。 WMI Reference

相關問題