在Windows的domain环境下,加域的客户端修改账户密码是一件很easy的事情;即使没有加域的客户端如果组织中,使用Exchange邮件系统,借助Exchange的owa也可以轻松修改账户密码。
前段时间搞Web+Portal 认证时,由于存在少量的LDAP用户,该Web+Portal认证不支持AD+LDAP双认证。为了让这部分用户也能够实现认证,采用了域名+用户名(避免和域用户重名)的方式导进了AD中,并设置了初始密码。可是问题也出现了,这部分用户不加域也没有Exchange邮箱,如何才能第一次登陆修改密码呢?
记得在Windows 2003 IIS中自带修改域用户密码的ASP网页文件iisadmpwd模块,可以通过web方式修改域用户密码。但是IIS 7上不再支持iisadmpwd功能,正常安装windows server 2008及IIS将不会有iisadmpwd模块。那如何将该模块移植到Windows Server 2008 R2中呢?
1、首先找一台Server2003系统,确认已安装好Internet信息服务(IIs)。
然后进入C:\WINDOWS\system32\inetsrv\iisadmpwd目录,copy iisadmpwd这个目录及子文件。
2、Server 2008 R2系统准备
安装好Web服务器(IIS),并且确认IIS6脚本工具 已安装。
由于我们的Server 2008 R2是64位系统,所以需要将copy的iisadmpwd目录放在系统的C:\Windows\SysWOW64\inetsrv\目录中
注册Iisadmpwd目录下的IISpwchg.dll文件:
以管理员身份运行命令提示符,输入下面的命令,然后回车
regsvr32 C:\Windows\SysWOW64\inetsrv\iisadmpwd\iispwchg.dll
配置PasswordChangeFlags属性,来确保密码修改这个功能可用:
以管理员身份运行命令提示符,切换到C:\Inetpub\Adminscripts目录,输入下面命令,然后回车
cscript.exe adsutil.vbs set w3svc/passwordchangeflags 0
注:设置PasswordChangeFlags属性的值,你可以组合使用
0:默认值,表示用ssl连接来更改密码
1:允许无安全的端口来更改密码,这个对于ssl功能被禁很有用
2:禁止更改密码
4:禁止密码过期提示
3、配置IIS7
首先确认默认网站(default web site)的https可用,且绑定好证书;
打开Internet信息服务(IIS)管理器。点击 “default web site ”站点,然后点击右侧操作栏的“绑定”
选择“https”协议,然后点击“编辑”,在ssl证书中选择本机服务器的证书
配置好https后,再次右击“default web site”,菜单中选择“添加应用程序”
打开添加应用程序向导,别名中填入“iisadmpwd”(名称可以自定义,但建议使用默认的这个^_^),物理路径中,点击浏览选择iisadmpwd目录,最后点击“确定”
返回default web site默认站点,点击iisadmpwd虚拟目录,打开默认文档中添加iisadmpwd的默认页aexp2.asp
然后返回iisadmpwd目录,打开“SSL设置”,取消“要求SSL(Q)”
4、修改域用户密码
打开浏览器,输入http://servername/iisadmpwd ,输入账户信息及新密码,然后点击“确定”。
由于我们启用了https协议,https://servername/iisadmpwd 同样可以访问
修改密码会直接调用https协议访问相应的asp脚本,点击“继续浏览此网站(不推荐)”
最后显示密码修改成功。
附:当输入用户名及密码,点击确定后,显示“无法显示该网页”时,请确认默认站点的绑定中,https协议已启用并配置的正确的证书。
本文出自 “孙亮的IT运维技术” 博客,请务必保留此出处http://shubao.blog.51cto.com/401810/1092564