2012-02-17 15 views
2

VB.NETを使用してADの「パスワードを変更できません」属性を設定する方法を理解しようとしています。"パスワードを変更できないユーザー"を設定する方法

私はもともとここで見つけたUserAccountControlフラグを使用したいと思っていましたが、http://support.microsoft.com/kb/305144のフラグを期待していたように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

は私がSAMアカウントのようなもののUserPrincipalオブジェクトの異なる属性を、設定した場合、保存が正常に動作しますが、私はそのUserCannotChangePassword属性を導入したら、保存していることです失敗する。

私は、この操作を実行するために使用しているユーザーが適切な特権を持っていることを確認しましたが、ここからどこに行くのかわかりません。

+0

これを試しましたか:http://msdn.microsoft.com/en-us/library/windows/desktop/aa746399%28v=vs.85%29.aspx –

+0

これはどちらもうまくいかないようです。私は、この新しいUserPrincipalクラスを使用することを望んでいました。これは、AD管理のためのすべての作業をはるかに簡単にするためです。理論的には、20行ではなく3行のコードで属性を変更できます。 – Boeckm

+0

内部例外はありますか? –

答えて

0

これを行うには古い学校の方法を見つけました。正しい方向に私を指してくれてありがとうございます。私は決着しなければならないと思う。

私は完璧な解決策をとっていましたが、節約を働かせることができませんでした。これはうまく動作します。これを使うだけで、コードの数行が増え、適応性が少し低下します。

関連する問題