Active directory 调用的目标已引发C#DirectoryEntry.Invoke异常。一个或多个输入参数无效

Active directory 调用的目标已引发C#DirectoryEntry.Invoke异常。一个或多个输入参数无效,active-directory,change-password,Active Directory,Change Password,此api在Active Directory的某些环境中工作,在某些环境中失败,但出现以下异常 调用的目标引发了异常。一个或多个输入参数无效。即使以下情况属实 “异常已由调用的目标引发。一个或多个输入参数无效”主要是在您尝试应用的新密码违反Active Directory密码策略时观察到的。Microsoft最近推出了一个新的更新 不允许使用非SL配置更改除管理员之外的其他密码。它需要最少的Kerberos或SSL来更改密码。他们删除了以前使用的默认机制对NTLM的支持。尝试改用UserPrinc

此api在Active Directory的某些环境中工作,在某些环境中失败,但出现以下异常

调用的目标引发了异常。一个或多个输入参数无效。

即使以下情况属实
“异常已由调用的目标引发。一个或多个输入参数无效”主要是在您尝试应用的新密码违反Active Directory密码策略时观察到的。Microsoft最近推出了一个新的更新
不允许使用非SL配置更改除管理员之外的其他密码。它需要最少的Kerberos或SSL来更改密码。他们删除了以前使用的默认机制对NTLM的支持。

尝试改用
UserPrincipal.ChangePassword
:我知道UserPrincipal.ChangePassword,但我的问题是为什么DirectoryEntry.Invoke for ChangePassword在不同的环境中行为不一致。如果没有更多的代码,这是不可能的判断这是错误还是代码中的错误。您能描述一下环境之间的差异吗?如果您尝试应用的新密码违反了Active Directory密码策略,则主要会观察到“异常已由调用的目标引发。一个或多个输入参数无效”。
 usr.Invoke("ChangePassword", new object[] { strCurrentPassword, strPassword});