Невозможно установить атрибут менеджера с помощью ADSI в PowerShell - PullRequest
1 голос
/ 18 октября 2019

Я обновляю некоторую информацию о пользователе в AD из базы данных HR.

Текстовые поля или фотография работает нормально:

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

Но я также должен установить менеджер и попытался

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

или

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

Это приводит к следующей ошибке:

Исключение вызывает "setinfo" с аргументом "0": "Недопустимый dnуказан синтаксис. "

Какой правильный синтаксис для обновления менеджера с использованием ADSI?

1 Ответ

3 голосов
/ 18 октября 2019

Как следует из сообщения об ошибке: атрибут 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...