我需要通过命令行列出 OU 内的对象。我知道我可以在 GUI 中使用“导出列表”,但我更愿意通过 CLI 来执行此操作。我可以使用管道输入来dsquery
获取dsget
群组成员,
# dsquery group -name "standardDistGroup"
"CN=standardDistGroup,OU=templateOU,DC=employees,DC=MyOrganization,DC=com"
# dsquery group -name "standardDistGroup" | dsget group -members
"CN=John Doe,OU=templateOU,DC=employees,DC=MyOrganization,DC=com"
"CN=Otto Normalverbraucher,OU=templateOU,DC=employees,DC=MyOrganization,DC=com"
但相同的语法似乎不适用于获取 OU 容器对象。
# dsquery OU -name "ByeBye"
"OU=ByeBye,DC=employees,DC=MyOrganization,DC=com"
# dsquery OU -name "ByeBye" | dsget ou -members
dsget failed:`-members' is an unknown parameter.
type dsget /? for help.
# dsquery OU -name "ByeBye" | dsget group -members
dsget failed:OU=ByeBye,DC=employees,DC=MyOrganization,DC=com:The object class of the target does not match the one specified on the command line.
type dsget /? for help.
有人知道如何通过 CLI 实现这一点吗?此服务器上不提供 Powershell。
答案1
组有成员,OU 没有成员。OU包含其他对象。对于要在给定路径中列出的每种对象类型,您将需要使用略有不同的命令。
dsquery user OU=ByeBye,DC=employees,DC=MyOrganization,DC=com
dsquery computer OU=ByeBye,DC=employees,DC=MyOrganization,DC=com
dsquery ou OU=ByeBye,DC=employees,DC=MyOrganization,DC=com
使用 powershell 是实现此目的的更好方法。您可以使用get-adobject
、查询对象get-aduser
,get-adcomputer
还可以使用AD:
后面的驱动器像文件系统一样浏览 AD import-module activeDirectory
。