Я пытаюсь выяснить, как установить атрибут «Пользователь не может сменить пароль» в AD с помощью VB.NET.
Изначально я надеялся использовать флаги UserAccountControl, найденные здесь http://support.microsoft.com/kb/305144, но я понял, что вы не можете установить флаг PASSWD_CANT_CHANGE
, как можно было ожидать. Это привело меня к этой публикации Запрещение пользователю Active Directory изменять свой пароль с помощью DirectoryServices , но я не могу заставить работать сохранение.
Вот код, который у меня есть сейчас.
Dim domainContext As PrincipalContext = New PrincipalContext(ContextType.Domain)
Dim user As UserPrincipal = UserPrincipal.FindByIdentity(domainContext, "user5")
user.UserCannotChangePassword = True
user.Save(domainContext)
Каждый раз, когда я пытаюсь сохранить это, я получаю InvalidOperationException. Документация для этого также не слишком полезна: http://msdn.microsoft.com/en-us/library/bb335863.aspx
Что странно для меня, так это то, что если я задаю другой атрибут этого объекта UserPrincipal, такой как SamAccountName, сохранение работает нормально, но как только я ввожу этот атрибут UserCannotChangePassword
, сохранение завершится неудачей.
Я проверил, что пользователь, которого я использую для выполнения этого действия, имеет надлежащие привилегии, но я не уверен, куда идти ... Есть идеи?