PowerShell创建AD嵌套子OU(子OU下建子OU)执行命令报错解决
AD PowerShell创建嵌套OU报错原因及正确操作方法
核心报错原因
- 权限不足:启动PowerShell时未选择「以管理员身份运行」,即使登录账号属于Domain Admins组,Windows UAC机制会剥离高权限令牌,操作AD对象时会触发访问拒绝错误。
- 父路径无效:手动拼接父OU的LDAP可分辨名称(DN)时容易出现拼写错误(比如名称字符偏差、多余空格、域后缀写错),或第一条创建顶级OU的命令因重名、AD服务异常等原因实际执行失败,导致第二条命令找不到目标父路径。
- 多域控复制延迟:多域控环境下操作未指定固定域控时,创建顶级OU的写入请求落在A域控,紧接着创建子OU的请求被转发到还未完成AD复制的B域控,会触发对象不存在报错。
正确嵌套创建OU的操作步骤
前置要求:使用域管理员账号登录系统,右键点击PowerShell图标选择「以管理员身份运行」启动会话。
- 加载AD模块并验证域根路径,避免基础路径写错:
# 导入Active Directory PowerShell模块 Import-Module ActiveDirectory # 查询当前域的根DN,确认输出为DC=wsa,DC=lab再执行后续操作 Get-ADDomain | Select-Object DistinguishedName
- 创建顶级父OU,通过
-PassThru参数捕获创建完成的OU对象,从根源避免手动拼写路径的错误:
# 创建顶级OU Sales Gurus,返回的对象存入变量 $salesOU = New-ADOrganizationalUnit -Name "Sales Gurus" ` -Path "DC=wsa,DC=lab" ` -ProtectedFromAccidentalDeletion $false ` -PassThru # 验证父OU创建结果,正常将输出 OU=Sales Gurus,DC=wsa,DC=lab $salesOU.DistinguishedName
- 基于捕获的父OU路径创建嵌套子OU,多域控环境可额外指定固定操作域控,规避复制延迟问题:
# 在Sales Gurus OU下创建子OU Sofia New-ADOrganizationalUnit -Name "Sofia" ` -Path $salesOU.DistinguishedName ` -ProtectedFromAccidentalDeletion $false # 多域控环境请取消注释下一行,替换为实际域控的全域名 # -Server "dc01.wsa.lab"
验证方法
所有OU创建完成后,执行以下命令查询域内所有OU的可分辨名称,确认嵌套结构符合预期:
Get-ADOrganizationalUnit -Filter * | Select-Object DistinguishedName
注:
-ProtectedFromAccidentalDeletion参数用于防止OU被误删,完成所有层级创建后,可以通过Set-ADOrganizationalUnitcmdlet按需为指定OU开启该配置,不会影响子对象的创建与修改。
内容的提问来源于stack exchange,提问作者sens31
相关产品推荐
相关产品推荐

