(一)更改activedirectory中iwam_myserver賬號的密碼
因iwam賬號的密碼由系統控制,隨機產生,我們并不知道是什么,為完成下面兩步的密碼同步工作,我們必須將iwam賬號的密碼設置為一個我們知道的值。
1、選擇“開始”->“程序”->“管理工具”->"activedirectory用戶和計算機",啟動“activedirectory用戶和計算機”管理單元。
2、單擊“user”,選中右面的“iwam_myserver”,右擊選擇“重設密碼(t)...”,在跳出的重設密碼對方框中給iwam_myserver設置新的密碼,這兒我們設置成“aboutnt2001”(沒有引號的),確定,等待密碼修改成功。
(二)同步iismetabase中iwam_myserver賬號的密碼
可能因為這項改動太敏感和重要,微軟并沒有為我們修改iismetabase中iwam_myserver賬號密碼提供一個顯式的用戶接口,只隨iis5提供了一個管理腳本adsutil.vbs,這個腳本位于c:inetpubadminscripts子目錄下(位置可能會因你安裝iis5時設置的不同而有所變動)。
adsutil.vbs腳本功能強大,參數非常多且用法復雜,這里只提供使用這個腳本修改iwam_myserver賬號密碼的方法:
adsutil set w3svc/wamuser passpassword
"password"參數就是要設置的iwam賬號的新的密碼。因此我們將iismetabase中iwam_myserver賬號的密碼修改為“aboutnt2001”的命令就是:
c:inetpubadminscripts>adsutil set w3svc/wamuserpass "aboutnt2001"
修改成功后,系統會有如下提示:
wamuserpass:(string)"aboutnt2001"
(三)同步com+應用程序所用的iwam_myserver的密碼
同步com+應用程序所用的iwam_myserver的密碼,我們有兩種方式可以選擇:一種是使用組件服務mmc管理單元,另一種是使用iwam賬號同步腳本synciwam.vbs。
1、使用組件服務mmc管理單元
(1)啟動組件服務管理單元:選擇“開始”->“運行”->“mmc”,啟動管理控制臺,打開“添加/刪除管理單元”對話框,將“組件服務”管理單元添加上。
(2)找到“組件服務”->“計算機”->“我的電腦”->“com+應用程序”->“out-of-processpooledapplications”,右擊“out-of-processpooledapplications”->“屬性”。
(3)切換到“out-of-processpooledapplications”屬性對話框的“標志”選項卡。“此應用程序在下列賬戶下運行”選擇中“此用戶”會被選中,用戶名是“iwam_myserver”。這些都是缺省的,不必改動。在下面的“密碼”和“確認密碼”文本框內輸入正確的密碼“aboutnt2001”,確定退出。
(4)系統如果提示“應用程序被一個以上的外部產品創建。你確定要被這些產品支持嗎?”時確定即可。
(5)如果我們在iis中將其它一些web的“應用程序保護”設置為“高(獨立的)”,那么這個web所使用的com+應用程序的iwam賬號密碼也需要同步。重復(1)-(4)步,同步其它相應outofprocessapplication的iwam賬號密碼。
2、使用iwam賬號同步腳本synciwam.vbs
實際上微軟已經發現iwam賬號在密碼同步方面存在問題,因此在iis5的管理腳本中單獨為iwam賬號密碼同步編寫了一個腳本synciwam.vbs,這個腳本位于c:inetpubadminscripts子目錄下(位置可能會因你安裝iis5時設置的不同而有所變動)。
synciwam.vbs腳本用法比較簡單:
cscriptsynciwam.vbs[-v|-h]
“-v”參數表示詳細顯示腳本執行的整個過程(建議使用),“-h”參數用于顯示簡單的幫助信息。
我們要同步iwam_myserver賬號在com+應用程序中的密碼,只需要執行“cscriptsynciwam.vbs-v”即可,如下:
cscriptc:inetpubadminscriptssynciwam.vbs -v
microsoft(r)windowsscripthostversion5.6
版權所有(c)microsoftcorporation1996-2000。保留所有權利。
wamusername:iwam_myserver
wamuserpass:aboutnt2001
iisapplicationsdefined:
name,appisolated,packageid
w3svc,0,3d14228c-fbe1-11d0-995d-00c04fd919c1}
root,2,
iishelp,2,
iisadmin,2,
iissamples,2,
msadc,2,
root,2,
iisadmin,2,
iishelp,2,
root,2,
root,2,
outofprocessapplicationsdefined:
count:1
3d14228d-fbe1-11d0-995d-00c04fd919c1}
updatingapplications:
name:iisout-of-processpooledapplicationskey:3d14228d-fbe1-11d0-995d-00c04fd919c1}
從上面腳本的執行情況可以看出,使用synciwam.vbs腳本要比使用組件服務的方法更全面和快捷。它首先從iis的metabase數據庫找到iwam賬號"iwam_myserver"并取出對應的密碼“aboutnt2001”,然后查找所有已定義的iisapplications和outofprocessapplications,并逐一同步每一個outofprocessapplications應用程序的iwam賬號密碼。
使用synciwam.vbs腳本時,要注意一個問題,那就是在你運行synciwam.vbs之前,必須保證iismetabase數據庫與activedirectory中的iwam密碼已經一致。因為synciwam.vbs腳本是從iismetabase數據庫而不是從activedirectory取得iwam賬號的密碼,如果iismetabase中的密碼不正確,那synciwam.vbs取得的密碼也會不正確,同步操作執行到“updatingapplications”系統就會報80110414錯誤,即“找不到應用程序3d14228d-fbe1-11d0-995d-00c04fd919c1}”。
好了,到現在為止,iwam賬號在activedirectory、iismetabase數據庫和com+應用程序三處的密碼已經同步成功,你的asp程序又可以運行了!
修改成功后,系統會有如下提示:
---------------------------------------------------
經過測試,顯示應該是
wamuserpass:(string)"*******"