如何在AD中搜索所有计算机名称?是否有可能在Python中返回AD中的所有计算机
1
A
回答
0
我觉得tou可以在Active Directory Cookbook Python stuff中找到你要找的东西。
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
查询所有计算机对象('limit', '0'
)整个域('domainroot'
)。这会返回一个二进制字符串 - 存储在bCompList
。
由于它是一个二进制字符串,我们可能会想将其转换为“标准”字符串格式来处理 - 这就是为什么我们使用str()
。我们可以用切片剪掉了“垃圾”字符(“b
”这表明该字符串是二进制,并且后'\\r\\n'
垃圾。)那得到的线,然后获取使用split()
打破它成一个列表。
顺便说一句,如果你想剪掉引号每个计算机对象dsquery computer
地方,切片更改为[3:-6]
,改变splitstring = "\\r\\n"
到splitstring = "\"\\r\\n\""
。
有两个显著警告这段代码,但是:
- 必须安装功能Windows的“AD DS管理单元和命令行工具”的计算机上运行(至少,这是要记录什么,他们是所谓的Windows Server 2008 R2。)
- 您需要具有适当权限的AD用户。 (另外,你可以在命令中包括参数列表
'-u', username, '-p', password
,更换username
和password
与相应的凭据。)
相关问题
- 1. 确定AD中的计算机是否有用户登录
- 2. 是否有可能从MongoDB查询返回计算的字段?
- 3. 检查现有的计算机在AD
- 4. 是否有可能返回App Engine计算属性中的引用属性?
- 5. 在PHP中,从计算中分离返回是否有优势?
- 6. 是否有可能在第二个gridview中计算总计?
- 7. python是否在双重秘密中运行所有计算?
- 8. 是否有可能在SQL中有条件地返回字段?
- 9. 是否有可能在AD中找到本地计算机而无需对其域进行硬编码?
- 10. 是否有可能在Emberjs中循环计算的数组?
- 11. 获取Python中的函数的所有可能的返回值
- 12. 是否有可能在python
- 13. 从林中的所有计算机获取所有计算机LastLogon
- 14. 是否有可能从Excel 2002工作簿中的所有工作表中返回所有范围的列表?
- 15. 是否有可能看到在C++中返回的值?
- 16. 是否有可能从set_trace_func返回值?
- 17. 是否有可能返回异常?
- 18. 是否有可能在Linq to Entities中进行DateAdd计算?
- 19. 是否有可能在SELECT语句中计算日期范围?
- 20. 是否有可能做出这样的计算并将结果返回给MongoDB?
- 21. 是否有可能在目标C中返回用户所属的iTunes商店?
- 22. 是否有可能在python中有丰富的python比较?
- 23. 是否有可能从Azure AD Graph返回用户的报告链?
- 24. 是否有可能计算mysql中结构匹配的数目?
- 25. 是否有可能在反应渲染函数中返回空?
- 26. 是否有可能在PHP返回语句中执行赋值?
- 27. 是否有可能在char中返回“怪异”字符?
- 28. 是否有可能在Codeigniter中返回多个变量/数组?
- 29. 是否有可能在NodeJS中动态返回SSL证书?
- 30. 是否有可能在jQuery中返回事件函数?
您也可以尝试在http://serverfault.com/这是SA的和桌面发布您的问题支持人们。 – DOK 2012-01-11 17:13:42