微软官方给出的ldap修改密码方案:


         密码存储在 Active Directory 用户中的对象的 unicodePwd属性。可以在有限的情况下,写入此属性,但无法读取。该特性只能修改 ;不能将添加的对象的创建日期或通过搜索查询。 若要修改此属性  ,则客户端必须 128 位安全套接字层 (SSL) 连接到服务器 。为此连接成为可能,服务器必须拥有一个 128 位的 RSA 连接的服务器证书,客户端必须信任生成服务器证书的证书颁发机构 (CA) 和客户端和服务器必须能够使用 128 位加密。





unicodePwd 属性的语法是八位字节字符串 ; 但是,目录服务需要八位字节的字符串将包含一个 UNICODE 字符串 (如属性的名称指示)。这意味着任何为此属性的值传递在 LDAP 作为一个八位字节字符串必须是 BER 编码 (基本编码规则) 的 UNICODE 字符串。此外,UNICODE 字符串必须中的开始和结束不需密码的一部分的引号。





有两个可能的方法修改 unicodePwd 属性。



  • 第一个是类似于普通"用户更改密码"操作。
  • 在这种情况下修改请求必须包含一个删除和添加操作。删除操作必须包含当前的密码与它周围的引号。添加操作必须包含所需的新密码,其周围的引号。





第二种方法是类似于管理员重设用户密码。 若要执行此操作在客户端必须具有足够的权限来修改另一用户的密码的用户身份将绑定。此修改请求应包含单个替换操作用新的所需的 密码用引号引起来。如果客户端中有足够的权限此密码将成为新的密码而不考虑的旧密码是什么。