在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)。

在Windows Server 2008 R2中使用web方式修改域用户账户密码_修改密码

然后进入C:\WINDOWS\system32\inetsrv\iisadmpwd目录,copy iisadmpwd这个目录及子文件。

在Windows Server 2008 R2中使用web方式修改域用户账户密码_web_02

2、Server 2008 R2系统准备

安装好Web服务器(IIS),并且确认IIS6脚本工具 已安装。

在Windows Server 2008 R2中使用web方式修改域用户账户密码_修改密码_03

由于我们的Server 2008 R2是64位系统,所以需要将copy的iisadmpwd目录放在系统的C:\Windows\SysWOW64\inetsrv\目录中

在Windows Server 2008 R2中使用web方式修改域用户账户密码_修改密码_04

注册Iisadmpwd目录下的IISpwchg.dll文件:

以管理员身份运行命令提示符,输入下面的命令,然后回车

regsvr32 C:\Windows\SysWOW64\inetsrv\iisadmpwd\iispwchg.dll

在Windows Server 2008 R2中使用web方式修改域用户账户密码_Windows_05

配置PasswordChangeFlags属性,来确保密码修改这个功能可用:

以管理员身份运行命令提示符,切换到C:\Inetpub\Adminscripts目录,输入下面命令,然后回车

cscript.exe adsutil.vbs set w3svc/passwordchangeflags 0

在Windows Server 2008 R2中使用web方式修改域用户账户密码_域用户_06

注:设置PasswordChangeFlags属性的值,你可以组合使用

0:默认值,表示用ssl连接来更改密码

1:允许无安全的端口来更改密码,这个对于ssl功能被禁很有用

2:禁止更改密码

4:禁止密码过期提示

3、配置IIS7

首先确认默认网站(default web site)的https可用,且绑定好证书;

打开Internet信息服务(IIS)管理器。点击 “default web site ”站点,然后点击右侧操作栏的“绑定”

在Windows Server 2008 R2中使用web方式修改域用户账户密码_修改密码_07

选择“https”协议,然后点击“编辑”,在ssl证书中选择本机服务器的证书

在Windows Server 2008 R2中使用web方式修改域用户账户密码_Windows_08

配置好https后,再次右击“default web site”,菜单中选择“添加应用程序”

在Windows Server 2008 R2中使用web方式修改域用户账户密码_web_09

打开添加应用程序向导,别名中填入“iisadmpwd”(名称可以自定义,但建议使用默认的这个^_^),物理路径中,点击浏览选择iisadmpwd目录,最后点击“确定”

在Windows Server 2008 R2中使用web方式修改域用户账户密码_Windows_10

返回default web site默认站点,点击iisadmpwd虚拟目录,打开默认文档中添加iisadmpwd的默认页aexp2.asp

在Windows Server 2008 R2中使用web方式修改域用户账户密码_修改密码_11

在Windows Server 2008 R2中使用web方式修改域用户账户密码_修改密码_12

然后返回iisadmpwd目录,打开“SSL设置”,取消“要求SSL(Q)”

在Windows Server 2008 R2中使用web方式修改域用户账户密码_web_13

在Windows Server 2008 R2中使用web方式修改域用户账户密码_修改密码_14

4、修改域用户密码

打开浏览器,输入http://servername/iisadmpwd ,输入账户信息及新密码,然后点击“确定”。

由于我们启用了https协议,https://servername/iisadmpwd 同样可以访问

在Windows Server 2008 R2中使用web方式修改域用户账户密码_域用户_15

修改密码会直接调用https协议访问相应的asp脚本,点击“继续浏览此网站(不推荐)”

在Windows Server 2008 R2中使用web方式修改域用户账户密码_Windows_16

在Windows Server 2008 R2中使用web方式修改域用户账户密码_web_17

最后显示密码修改成功。

附:当输入用户名及密码,点击确定后,显示“无法显示该网页”时,请确认默认站点的绑定中,https协议已启用并配置的正确的证书。

在Windows Server 2008 R2中使用web方式修改域用户账户密码_域用户_18

在Windows Server 2008 R2中使用web方式修改域用户账户密码_Windows_19