問題
很多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:\Windows\system32\inetsrv\Iisadmpwd . 如果沒有找到該路徑, 你需要先在Windows Server 2003上安裝IIS服務.
注意 : 如果您在IIS7/7.5中的網站應用是64位, 您需要COPY一個64位版本的IISADMPWD. 如果是32位, 同樣需要COPY一個32位的IISADMPWD. 在x64的Windows Server 2003中, 32位的IISADMPWD位於%windir%\SysWOW64\inetsrv\iisadmpwd .
2. 將IISADMPWD的文件COPY到Windows Server 2008服務器后,需要注冊IISpwcchg.dll.
1) 用admin的權限打開一個命令窗口.
2) 執行以下命令 : regsvr32 c:\windows\system32\inetsrv\iisadmpwd\iispwchg.dll
其中c:\windows\system32\inetsrv\iisadmpwd\ 是IISADMPWD的放置路徑.
3. 其次, 需要設置metabase中的PasswordChangeFlags. 以運行修改密碼的功能 :
1) 用admin的權限打開一個命令窗口.
2) 打開到如下路徑 : C:\Inetpub\Adminscripts
如果你沒能找到這個路徑, 請先啟用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
