我有一个问题与python3 pyad模块。我想查询我的活动目录环境中的所有PC与一些信息,如果他们被启用与否。
这是密码:
q = pyad.adquery.ADQuery()
q.execute_query(
attributes = ["CN", "OperatingSystem", "OperatingSystemVersion", "Description", "Enabled"],
where_clause = "objectClass = 'Computer'",
base_dn = "OU=Client,OU=####,OU=########,DC=###############,DC=########,DC=local"
)
ad_result = []
for row in q.get_results():
ad_result.append(row)
print(row)
这是我得到的回报:
{'Enabled': None, 'Description': None, 'OperatingSystemVersion': '10.0 (17763)', 'OperatingSystem': 'Windows 10 Pro', 'CN': '<PC NAME>'}
{'Enabled': None, 'Description': None, 'OperatingSystemVersion': '10.0 (17763)', 'OperatingSystem': 'Windows 10 Pro', 'CN': '<PC NAME>'}
{'Enabled': None, 'Description': None, 'OperatingSystemVersion': '10.0 (17763)', 'OperatingSystem': 'Windows 10 Pro', 'CN': '<PC NAME>'}
{'Enabled': None, 'Description': None, 'OperatingSystemVersion': '10.0 (17763)', 'OperatingSystem': 'Windows 10 Pro', 'CN': '<PC NAME>'}
{'Enabled': None, 'Description': None, 'OperatingSystemVersion': '10.0 (17763)', 'OperatingSystem': 'Windows 10 Pro', 'CN': '<PC NAME>'}
{'Enabled': None, 'Description': None, 'OperatingSystemVersion': '10.0 (17763)', 'OperatingSystem': 'Windows 10 Pro', 'CN': '<PC NAME>'}
{'Enabled': None, 'Description': None, 'OperatingSystemVersion': '10.0 (17763)', 'OperatingSystem': 'Windows 10 Pro', 'CN': '<PC NAME>'}
所以我的问题是,不是得到"启用"状态为真或假,我只得到无。当我通过Powershell查询时,它工作得很好,但我真的很想使用python。我不想把一些Powershell csv导出到我的脚本中。如果有人有任何想法,我希望得到一个答案,谢谢。
2条答案
按热度按时间cpjpxq1n1#
要确定系统是否已启用,必须检查userAccountControl标志。
详细的标志信息可以在here和here中找到
通过将返回代码转换为十六进制,然后标记以2结尾的禁用系统,您可以轻松地分析enabled与disabled。
示例:
htrmnn0y2#
我不知道为什么会观察到这种行为,但我知道从哪里获取“Enabled”属性:
将产生:
对于启用的机器和禁用的机器:
对于说明字段:
如果属性名称在上述调用的输出中,则可以使用以下命令进行查询: