无法在 PowerShell 中使用 ADSI 设置管理器属性

Cannot set manager attribute using ADSI in PowerShell

我从 HR 数据库更新了 AD 中的一些用户信息。

文本字段或照片工作正常:

$user.Put("telephoneNumber", "1234")
$user.Put("thumbnailPhoto", $binaryfile)
$user.SetInfo()

不过我也得设置manager试过

$user.Put("manager", "MYDOMAIN\MYUSERNAME")

$user.Put("manager", "MYUSERNAME")

出现以下错误:

Exception calling "setinfo" with "0" argument(s): "An invalid dn syntax has been specified."

使用 ADSI 更新管理器的正确语法是什么?

如错误消息所示:manager 属性需要一个专有名称 (dn),而不是用户登录名,因此您需要先获取经理的 dn,然后将该值放入 manager属性。

$manager = 'MYUSERNAME'

#...

$searcher = New-Object DirectoryServices.DirectorySearcher(([adsi]''))
$searcher.Filter = "(&(objectClass=user)(objectCategory=person)(sAMAccountName=${manager}))"
$dn = $searcher.FindOne().Properties['distinguishedName'][0]

#...

$user.Put('manager', $dn)
$user.SetInfo()