无法在 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()
我从 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()