ou能管理对象并应用gpo和委派,普通container仅用于存放对象;cn=computers是容器,无gplink属性,无法应用gpo,也不支持基于任务的委派。
ou 能管东西,普通 container 只能放东西 —— 这是唯一需要记住的核心判断。
为什么不能在 CN=Computers 上直接配 GPO
因为 CN=Computers 是一个普通容器,不是 OU。它没有 gPLink 属性,AD 后台会忽略任何试图绑定到它的 GPO。即使你用 ADSI Edit 强行写入,策略也不会生效、不会出现在 gpresult /h 报告里,也不会触发组策略刷新。
- Domain Controllers 是
OU=Domain Controllers,所以能部署登录脚本、密码策略、安全模板 - CN=Computers 和 CN=Users 都是安装域时自动生成的兼容性容器,仅用于向后兼容旧工具(比如早期的 net user 命令)
- 新建的计算机默认进
CN=Computers,但只要一启用策略管理,就必须先移入自定义 OU
委派权限时看不到“重置密码”选项
在普通容器上右键 → “委派控制”,向导里根本不会出现“重置用户密码”“创建/删除用户”等常用任务 —— 因为这些操作依赖 OU 级别的 ACL 模板和内置逻辑。容器虽然也能手动设 ACL,但缺少策略驱动的权限粒度。
- OU 支持基于任务的委派(Delegation of Control Wizard),可精确到“仅允许修改电话号码”
- 容器上只能靠手动编辑安全标签(Security tab),且多数 AD 管理接口(如 Active Directory Administrative Center)会禁用相关操作
- 用
dsacls命令强行给容器加权限,可能让某些 GUI 工具报错或行为异常
用 LDAP 查询时 objectCategory 和 objectClass 的差异影响
查对象类型时,objectClass=user 在 CN=Users 和 OU=Sales 里都能命中,但 objectCategory=person 才真正反映对象“归属哪类容器结构”。OU 本身是 organizationalUnit 类,而容器是 container 类 —— 这个区别会直接影响脚本逻辑和自动化判断。
-
(objectClass=organizationalUnit)只匹配 OU,不匹配CN=Computers -
(objectCategory=container)可以区分出CN=Builtin、CN=ForeignSecurityPrincipals等原生容器 - 批量迁移脚本若只按
objectClass判断,可能误把容器当 OU 处理,导致后续 GPO 链接失败
最常被忽略的一点:OU 可以嵌套、可以重定向(redirusr / redircmp)、可以设置 adminCount=1 触发保护机制;普通容器连 rename 都受限,更别说策略继承链或安全描述符自动继承了。别把它当成“长得像 OU 的文件夹”。











