Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189024
  • 博文数量: 19
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1062
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-10 15:52
个人简介

经历过才能真的感受,做一个靠谱的人!

文章分类

全部博文(19)

文章存档

2015年(1)

2013年(18)

我的朋友

分类: 架构设计与优化

2013-10-20 18:04:26

                            LDAP连接AD修改用户密码分析--server is unwilling to perform

    通过LDAP设置AD中用户密码必须满足非常严格的三个条件,否则会提示Warning:server is unwilling to perform。

  • 必须使用SSL方式连接AD(ldaps://);

  • 密码必须使用引号括起来;

  • 引号中的密码必须使用16位unicode编码(UTF-16LE);

    假设你要重置的密码是使用普通的ascii码编码,那么代码的转换可以通过如下的方式实现,即:将原ascii码编码的密码中每一个字符\000后,再拼接到一起,就可以转换成16位unicode编码。代码示例如下:

    点击(此处)折叠或打开

    1. $newpassword = "iaaat@111111";
    2. $newpassword = "\"" . $newpassword . "\"";
    3. $len = strlen($newpassword);
    4. for ($i = 0; $i < $len; $i++) $newpass .= "{$newpassword{$i}}\000";
    5. $entry["unicodePwd"] = $newpass;



个人认为配置使用SSL方式连接AD(ldaps://域名或者IP)是非常繁琐的,并且有些无厘头的步骤,目前基本成功了。我的环境是:windows server 2012(AD服务器 php 5.4.15,apache2.2(on windows,windows 7(LDAP 客户端)。欢迎大家共同交流~
 

 

阅读(6614) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

hc_ttcm2014-01-28 17:13:38

LZ,我试了,报错的呀。你这个利用Python不能改域用户密码吧,不需要证书吗?