C# 无法从c代码更改AD密码,引发异常

C# 无法从c代码更改AD密码,引发异常,c#,.net,active-directory,ldap,C#,.net,Active Directory,Ldap,我对更改用户AD密码的c#脚本有问题,当尝试更改密码时,他们抛出异常 A constraint violation occurred. (Exception from HRESULT: 0x8007202F) 代码 哪一个可能是问题?看这里: 对于您的示例,它将如下所示: using (var context = new PrincipalContext(ContextType.Domain,"domain.com")) using (var user = UserPrincipal.Find

我对更改用户AD密码的c#脚本有问题,当尝试更改密码时,他们抛出异常

A constraint violation occurred. (Exception from HRESULT: 0x8007202F)
代码

哪一个可能是问题?

看这里:

对于您的示例,它将如下所示:

using (var context = new PrincipalContext(ContextType.Domain,"domain.com"))
using (var user = UserPrincipal.FindByIdentity( context, IdentityType.SamAccountName, 
                                                                 strLoginName )) 
{ 
  user.ChangePassword( oldPassword, newpassword ); 
} 
我希望这能有所帮助。

请看这里:

对于您的示例,它将如下所示:

using (var context = new PrincipalContext(ContextType.Domain,"domain.com"))
using (var user = UserPrincipal.FindByIdentity( context, IdentityType.SamAccountName, 
                                                                 strLoginName )) 
{ 
  user.ChangePassword( oldPassword, newpassword ); 
} 

我希望这会有所帮助。

听起来active directory的密码复杂度要求不符合新密码的要求。我尝试了一个复杂的密码,但它不起作用。听起来active directory的密码复杂度要求不符合新密码的要求。我尝试了一个复杂的密码,但它不起作用。我相信您的问题在于将数组传递给单个值属性。此外,您正在查询SamAccountName,但使用FindAll而不是FindOne。如果您有多个用户具有相同的SamAccountName,那么除了0x8007202F异常之外,您还有更多的麻烦。我相信您的问题在于将数组传递给单个值属性。此外,您正在查询SamAccountName,但使用FindAll而不是FindOne。如果您有多个用户具有相同的SamAccountName,那么除了0x8007202F异常之外,您还有更多的麻烦。。。