0

.Net 4.0 の初心者。
現在、次のコードを使用してユーザー パスワードをリセットするスクリプトがあります。

 DirectoryEntry de = new DirectoryEntry("myLdapString");

 DirectoryEntry ChgPwd = de.Children.Find("CN=" + "myuserid", "user");

 ChgPwd.Invoke("SetPassword", new object[] { "newPWD" });

 ChgPwd.CommitChanges();

これを変更して、「CN=」ではなく「sAMAccount=」を使用してユーザーを指すようにします。しかし、上記の検索文字列でそれを変更しても機能しません。誰かがこの変更の適切な構文を手伝ってくれますか? ありがとう

4

1 に答える 1

3

System.DirectoryServices.AccountManagement 名前空間を使用して、アクティブなディレクトリ アカウントを管理できます。

コードのような

using(PrincipalContext principalContext = new PrincipalContext( ContextType.Domain,
            TargetDomain,
            TargetDomainUserName,
            TargetDomainPassword))
 using(var userPrincipal = UserPrincipal.FindByIdentity(principalContext, IdentityType.SamAccountName, "somaloginname"))
{ 
userPrincipal.SetPassword(newPassword);
//or userPrincipal.ChangePassword
            userPrincipal.Save();
            }

MSDN:UserPrincipal クラス

于 2013-10-31T17:14:14.107 に答える