Я работаю над обновлением решения в VB.NET, которое основано на Active Directory. На данный момент я пытаюсь добавить ограничение доступа к ПК новому пользователю AD при создании пользователя. По сути, мне нужно обновить атрибут Logon To, чтобы включить 1 или более компьютеров, как я могу это сделать?Как установить пользовательский логин на атрибут AD в VB.NET
Я узнал, что меня интересует свойство IADsUser «LoginWorkstations
» (спасибо http://msdn.microsoft.com/en-us/library/Aa746340). На данный момент у меня есть код, который может извлечь этот атрибут у любого пользователя AD, но я не могу его установить.
Вот код, я должен принести атрибут:
Dim userADObject As new DirectoryEntry(ADPath)
Dim logonToPC as String = userADObject.InvokeGet("LoginWorkstations")(0).ToString
Это будет получать первый ограниченный компьютер (если он есть) и сохранить его в logonToPC
и будет выглядеть как «PC10000
»
это прекрасно работает, так что интуитивно я бы предположить что-то подобное будет работать:
Dim userADObject As new DirectoryEntry(ADPath)
Dim args() As Object = {"PC100001"}
userADObject.InvokeSet("LoginWorkstations", args)
Но это не работает ... это просто бросает довольно бесполезное исключение.
Я пробовал испытать этот подход с другим атрибутом, и он работает отлично. Не так много в Google или к сожалению ...
Любая помощь была бы принята с благодарностью.
Это не работает. Я могу успешно добавить первый ПК (если пользователь еще не имеет ограничения), но как только я попытаюсь добавить и зафиксировать второй или третий компьютер, я получаю «Указанный атрибут службы или значение уже существует». Я, очевидно, подтвердил в AD, что пользователь фактически не имеет этих назначений ПК. Есть идеи? – Boeckm
Выяснил это marc_s. Проверьте мой ответ. Спасибо, что указал мне в правильном направлении! – Boeckm