执行Set-ADUser PowerShell命令报错:The name reference is invalid 求助
解决Set-ADUser设置msExchDelegateListLink时的“The name reference is invalid”错误
你在执行这条PowerShell命令给AD用户添加代理列表链接时碰到了报错:
Set-ADUser -Identity suser -Add @{msExchDelegateListLink='CN=Customer Care,OU=Onlinetenent.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NMPR19A04,DC=PROD,DC=OUTLOOK,DC=COM'}
错误详情如下:
Set-ADUser : The name reference is invalid
At line:3 char:77
- ... rt.com'} | Set-ADUser -Add @{msExchDelegateListLink='CN=Customer Car ...
- CategoryInfo : NotSpecified: (CN=user test...=proddom,DC=net:ADUser) [Set-ADUser], ADException
- FullyQualifiedErrorId : ActiveDirectoryServer:8373,Microsoft.ActiveDirectory.Management.Commands.SetADUser
这个错误(错误代码8373)本质是域控制器没法正确解析你指定的msExchDelegateListLink对象路径,我给你整理几个排查和解决的方法:
1. 先确认目标组的LDAP路径绝对正确
手动写LDAP路径很容易出错,比如拼写错OU名称、层级顺序搞反,或者组根本不在这个路径下。你可以先用Get-ADGroup命令查出组的真实路径:
Get-ADGroup -Filter {Name -eq 'Customer Care'} -Properties DistinguishedName
如果能查到结果,直接复制返回的DistinguishedName替换你命令里的路径;如果查不到,那说明组名写错了,或者在别的OU里,得调整过滤条件找找看。
2. 用AD对象传递属性,避免手动写路径出错
更稳妥的方式是先获取组的AD对象,再把对象的路径属性传给Set-ADUser,这样就不会因为手动输入路径出错了:
$delegateGroup = Get-ADGroup -Identity 'Customer Care' Set-ADUser -Identity suser -Add @{msExchDelegateListLink=$delegateGroup.DistinguishedName}
3. 如果是跨域场景,确认DC访问和权限
如果目标组在另一个域,得确保你的执行环境能访问到目标域的DC,而且账号有跨域读取组信息、修改本地用户属性的权限。可以试试在Get-ADGroup里指定目标域的DC:
$delegateGroup = Get-ADGroup -Identity 'Customer Care' -Server NMPR19A04.PROD.OUTLOOK.COM Set-ADUser -Identity suser -Add @{msExchDelegateListLink=$delegateGroup.DistinguishedName}
4. 检查账号权限是否足够
最后要确认你用来运行命令的账号有两个权限:
- 能读取目标组
Customer Care的信息 - 能修改目标用户
suser的msExchDelegateListLink属性
你可以通过AD用户和计算机的高级安全设置来检查或调整这些权限。
内容的提问来源于stack exchange,提问作者Sudhagar Rajaraman
相关产品推荐
相关产品推荐

