跨域AD用户设置管理器失败:无法找到对象身份的问题排查
问题原因及修正方案
错误根源
你在设置Manager属性时使用了用户的Name属性,但跨域场景下,当前域(bs.cl.com.au)无法通过Name找到另一域(cl.com.au)的用户——Name只是域内唯一标识,跨域不具备全局唯一性,且Set-ADUser默认只会在当前连接的域内查找对象,所以才会报找不到对象的错误。
修正步骤
跨域设置AD用户的Manager属性,必须使用跨域唯一的用户标识,优先用可分辨名称(DistinguishedName)或对象SID(ObjectSID),AD可以通过全局编录识别这些跨域唯一标识。
修正后的PowerShell脚本:
Import-Module psexcel $path = "C:\Users\muh\testFile2.xlsx" Import-XLSX -Path $path | ForEach-Object { # 获取目标用户的完整对象(保留身份标识) $ADUserObj = Get-ADUser -Filter "DisplayName -eq '$($_.Store)'" -Server server1.bs.cl.com.au # 获取管理器用户的可分辨名称 $managerDN = (Get-ADUser -Filter "displayname -eq '$($_.Name)'" -Server server2.cl.com.au).DistinguishedName if ($ADUserObj -And $managerDN) { # 传入目标用户对象和管理器的可分辨名称完成设置 Set-ADUser -Identity $ADUserObj -Manager $managerDN -Server server1.bs.cl.com.au } }
额外注意事项
- 确保两个域之间存在双向信任关系,否则跨域访问AD对象会失败。
- 如果DisplayName可能存在重复,建议改用更唯一的属性(比如SamAccountName)来筛选用户,避免匹配到错误对象。
内容的提问来源于stack exchange,提问作者Muhammad Usman Adil
相关产品推荐
相关产品推荐

