如何通过Python中的Wmi从活动目录中获取计算机列表

时间:2013-10-30 13:03:20

标签: python python-2.7 active-directory ldap wmi

我有一个窗口活动目录,我已将计算机连接到活动目录以访问已连接的计算机。

我在下面写了python代码用于连接,

import wmi
try:
    connection = wmi.WMI(ip, user=username, password=password)
    print "connection is establised"
    for users in connection.Win32_SystemUsers():
        print users
except:
    print "connection failed"

上面的代码显示了所有用户列表,但我不知道如何使用wmi win32类获取计算机列表。

现在问题是我想要使用python在活动目录中的计算机列表。任何人都帮助我。

我找到了另一种连接方法,即ldap,但这里出现了同样的问题。我无法找到或访问计算机列表。

我使用下面的代码连接并显示用户列表

l = ldap.initialize("ldap://192.168.1.40")
try:
    l.protocol_version = ldap.VERSION3
    l.set_option(ldap.OPT_REFERRALS, 0)

    bind = l.simple_bind_s("administrator@example.com", "example@123")

    base = "dc=example, dc=com"
    criteria = "(&(objectClass=user)(sAMAccountName=*))"
    attributes = ['displayName', 'company']
    result = l.search_s(base, ldap.SCOPE_SUBTREE, criteria, attributes)

    results = [entry for dn, entry in result if isinstance(entry, dict)]
    print results
finally:
    l.unbind()

现在如何获取计算机列表

提前致谢!

1 个答案:

答案 0 :(得分:2)

如果您要搜索计算机,为什么要搜索用户?

criteria = "(&(objectClass=user)(sAMAccountName=*))"

试试这个:

criteria = "(&(objectClass=computer))"