如何在AD中搜索所有计算机名称?
答案 0 :(得分:1)
这不是很棒的代码 - 如果您对Windows API足够熟悉,我建议您使用win32con
这样做。但是,这非常实用:
import subprocess
splitstring = "\\r\\n"
bCompList = subprocess.check_output(['dsquery', 'computer', 'domainroot',
'-scope', 'subtree', '-limit', '0'])
compList = str(bCompList)[2:-5].split(splitstring)
subprocess
模块用于运行外部命令;我建议reading up on the documentation。 subprocess.check_output
从stdout捕获并返回命令的输出。 (注意命令是一个列表。这很重要!)
在这种情况下,我们会使用dsquery computer
查询所有计算机对象('domainroot'
)的整个域('limit', '0'
)。这将返回一个二进制字符串 - 存储在bCompList
。
由于它是二进制字符串,我们可能希望将其转换为“标准”。要使用的字符串格式 - 这就是我们使用str()
的原因。我们可以使用切片来修剪“垃圾”。字符(" b
"表示字符串是二进制,尾随'\\r\\n'
垃圾。)然后,split()
使用该结果字符串将其分解列表。
顺便提一下,如果要修剪每个计算机对象周围的引号dsquery computer
,请将切片更改为[3:-6]
并将splitstring = "\\r\\n"
更改为splitstring = "\"\\r\\n\""
。
此代码有两个重要注意事项:
'-u', username, '-p', password
,将username
和password
替换为相应的凭据。)答案 1 :(得分:0)
我认为你可以在Active Directory Cookbook Python stuff找到你想要的东西。