2010-01-12 92 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

相关问题