2012-02-17 3 views
2

VB.NET을 사용하여 AD의 "암호를 변경할 수 없습니다"속성을 설정하는 방법을 알아 내려고하고 있습니다."암호를 변경할 수 없습니다"AD 속성을 설정하는 방법

나는 원래 http://support.microsoft.com/kb/305144이라는 UserAccountControl Flags를 사용하기를 바랬지 만 기대했던 것처럼 PASSWD_CANT_CHANGE 플래그를 설정할 수 없다는 것을 깨달았습니다. 이것은 나를 Preventing an Active Directory user from changing his/her password using 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

무엇을 나에게 이상한 것은 내가 SAMAccountName을 같은 그 UserPrincipal 개체의 다른 속성을 설정하면, 절약 잘 작동하지만, 내가 소개하면 UserCannotChangePassword 속성, 절약이다 실패합니다.

나는이 작업을 수행하는 데 사용하는 사용자에게 적절한 권한이 있음을 확인했지만 여기에서 어디로 가야할 지 확신하지 못합니다 ... 어떤 아이디어입니까?

+0

시도해 보셨습니까? http://msdn.microsoft.com/en-us/library/windows/desktop/aa746399%28v=vs.85%29.aspx –

+0

그 중 하나가 작동하지 않는 것 같습니다. 이 새로운 UserPrincipal 클래스를 사용하면 광고 관리를위한 모든 작업이 훨씬 쉬워지기를 바랍니다. 이론적으로 20 줄보다 3 줄의 코드에서 속성을 변경할 수 있습니다. – Boeckm

+0

내부 예외가 있습니까? –

답변

0

올바른 방법으로 @juergen d를 알려 주셔서 감사합니다. 내가 정착해야 할 것 같아.

완벽한 솔루션을 제공하는 데는 시간이 거의 소모되었지만 절약 할 수는 없었습니다. 나는 잘 추측한다. 이것을 사용하면 몇 줄의 코드와 약간의 적응성을 의미합니다.

관련 문제