问题
很多IIS用户还记得在早期的IIS版本上有一个web应用, IISADMPWD. 该应用是与IIS5 和IIS6一起发布的. 主要用于为域用户提供修改密码的功能, 同时也可以修改本机用户的密码. 但是这个功能包含在IIS7/7.5中. 在IIS 7及以上版本中, 微软不再提供这个web应用的支持.
虽然该功能没有与IIS7/7.5一起发布, 但通过一些简单的配置还是可以使用该功能,本文将介绍如何在IIS7/7.5中配置IISADMPWD的web 应用.
注意 : 本文只是介绍如何在IIS7/7.5中配置IISADMPWD的web 应用. 由于该功能已经在IIS7及以上版本中的被遗弃, 微软不会对IIS7及以上版本中的IISADMPWD提供支持.
步骤
由于IISADMPWD的Web 应用不再被IIS7及以上版本所支持. 在一个干净的Windows Server 2008 中是没法找到这个文件. 所以需要从一台Windows Server 2003中找到并且将文件复制到Windows Server 2008上.
1. 默认情况下, IISADMPWD放置在Windows Server 2003服务器的如下路径 : C:Windowssystem32inetsrvIisadmpwd . 如果没有找到该路径, 你需要先在Windows Server 2003上安装IIS服务.
注意 : 如果您在IIS7/7.5中的网站应用是64位, 您需要COPY一个64位版本的IISADMPWD. 如果是32位, 同样需要COPY一个32位的IISADMPWD. 在x64的Windows Server 2003中, 32位的IISADMPWD位于%windir%SysWOW64inetsrviisadmpwd .
2. 将IISADMPWD的文件COPY到Windows Server 2008服务器后,需要注册IISpwcchg.dll.
1) 用admin的权限打开一个命令窗口.
2) 执行以下命令 : regsvr32 c:windowssystem32inetsrviisadmpwdiispwchg.dll
其中c:windowssystem32inetsrviisadmpwd 是IISADMPWD的放置路径.
3. 其次, 需要设置metabase中的PasswordChangeFlags. 以运行修改密码的功能 :
1) 用admin的权限打开一个命令窗口.
2) 打开到如下路径 : C:InetpubAdminscripts
如果你没能找到这个路径, 请先启用IIS的IIS 6 Scripting Tools feature. 请参考 : http://msdn.microsoft.com/library/ms751518.aspx
3) 输入以下命令 : cscript.exe adsutil.vbs set w3svc/passwordchangeflags Value
4) 下面是对Value的定义 :
0 : 默认值. 该值代表你必须启用SSL来修改密码.
1: 允许非安全的Port来修改密码. 如果你没有启用SSL, 同时又需要修改密码的功能, 可以使用该值.
2 : 关闭修改密码的功能.
4 : 关闭 “advance notification of password expiration”.
4.打开IIS管理器. 展开需要加入该功能的网站. 右键点击该网站, 在弹出菜单中 选中Add Virtual Directory.
5. 在配置好Virtual Directory之后, IISADMPWD就可以使用了.
6. 关于IISADMPWD中几个页面的功能, 可以参考http://blogs.msdn.com/b/friis/archive/2009/03/24/setting-up-the-iis-6-password-change-site-iisadmpwd.aspx
Test.asp |
包括了IISADMPWD页面上所显示的文字和label. 如果需要修改asp页面上所显示的内容, 可以修改该页面的定义. |
Achg.asp |
用于执行修改密码请求的页面. |
Aexp.asp |
该页面会默认情况下会为IIS显示那些密码已经过期的用户. 通过配置IIS metabase中的”AuthExpiredURL”, 可以使用该页面. |
Aexp2.asp |
用于修改IIS本机用户的密码. |
Aexp2b.asp |
用于修改域用户的密码. 默认情况下, 该页面会使用SSL对会话进行加密. 如果你没有启用SSL功能, 请求会失败.
|
Aexp3.asp |
类似于aexp.asp. 不需要使用SSL |
如果想使用aexp2.asp页面来修改域用户的密码, 但是又不想启用SSL. 你可以按照下面的方法来进行修改. 但是我们不推荐该方法. 因为, 如果没有SSL的加密保护, 密码是明文的在网络间传递, 很容易被截获.
1. 用notepad打开aexp2.asp.
2. 找到
<form method="POST" action="https://<%=Server.HTMLEncode(Request.ServerVariables("SERVER_NAME"))%>/iisadmpwd/achg.asp?<%=Server.HTMLEncode(Request.QueryString)%>">
3. 将https://修改为http:// , 如下 :
<form method="POST" action="http://<%=Server.HTMLEncode(Request.ServerVariables("SERVER_NAME"))%>/iisadmpwd/achg.asp?<%=Server.HTMLEncode(Request.QueryString)%>">
同样的, 如果启用了SSL,但是使用了非默认的443端口, 也在条语句中加入对应的端口号. 例如使用的是445端口 :
<form method="POST" action="https://<%=Server.HTMLEncode(Request.ServerVariables("SERVER_NAME"))%>:445/iisadmpwd/achg.asp?<%=Server.HTMLEncode(Request.QueryString)%>">
希望以上内容对您有所帮助,
Sonic Guo