天天看點

IUSR 和 IWAM 帳戶密碼同步 和 對檔案的通路被拒絕

IUSR 和 IWAM 帳戶密碼同步 和 對檔案的通路被拒絕

最近在做一個C#的Webservice,當我調試中心伺服器的接口時出現了問題,web服務的接口一運作中心伺服器就報異常:對**檔案的通路被拒絕。 我當時以為是IIS檔案夾沒有給ASP.NET使用者添加可修改的權限,奇怪的是當我添加了ASP.NET使用者權限後依然報錯,即使ASP.NET使用者擁有 最高權限依然如是。

于是我設定了IIS的匿名使用者為其它使用者後,并修改了原來的IUSER_WY使用者的密碼,伺服器居然不能連接配接,暈死,後 來一咨詢一高手同僚時才知道,匿名使用者的密碼一旦修改,就很難要回來,因為這個使用者的密碼是由系統管理的,而調試的時候是始用預設密碼的,你是不能修改原 密碼的,系統每次是通過原密碼通路,而密碼改動後,伺服器當然就連接配接不上了。

解決辦法就是必須確定上述三個位置的 IUSR 和 IWAM 帳戶密碼是同步的。

同步方式有兩種:

在使用者管理器 (Windows NT) 或使用者群組 (Windows 2000) 中設定 IWAM 和 IUSR 帳戶的密碼,在 IIS 配置資料庫中更改密碼,由此而使用相同的密碼。

或者,在 IIS 配置資料庫中設定密碼,在使用者管理器 (Windows NT) 或使用者群組 (Windows 2000) 中更改密碼。

這其中要使用到一個腳本檔案:Adsutil.vbs。

下面給出其中一個解決方法:

1. 在"指令"視窗中,找到 Adsutil.vbs 檔案所在的檔案夾。使用 Adsutil.vbs 工具從 IIS 配置資料庫獲得 IWAM 和 IUSR 帳戶的密碼。

2. 若要在 Windows NT 中更改 IUSR 和/或 IWAM 密碼,請按照下列步驟操作:

a. 在開始菜單上,依次指向程式、管理工具,然後單擊域使用者管理器。在"域使用者管理器"中,可以更改所有 Windows NT 使用者帳戶群組的帳戶資訊。

b. 輕按兩下 IUSR_ 計算機名 和/或 IWAM_ 計算機名 使用者,然後修改密碼,使它們與第 1 步獲得的 IIS 配置資料庫密碼一緻。

若要在 Windows 2000 中更改 IUSR 和/或 IWAM 密碼,請按照下列步驟操作:

c. 在開始菜單上,依次指向程式、管理工具,然後單擊計算機管理。

d. 在系統工具節點下面,單擊展開"本地使用者群組"和"使用者"節點。在"使用者"節點中,

可以更改所有 Windows 2000 使用者帳戶群組的帳戶資訊。

e. 右鍵單擊 IUSR_ 計算機名和/或 IWAM_ 計算機名帳戶,然後單擊設定密碼。

f. 修改密碼,使它們與第 1 步獲得的 IIS 配置資料庫密碼一緻。

3. 浏覽傳回錯誤資訊的 ASP 頁,檢查問題是否已解決。

如何使用 Adsutil.vbs

IIS  提供了名為 Adsutil.vbs 的腳本檔案,用于擷取或設定 IIS 配置資料庫中的 IUSR 和 IWAM 帳戶密碼。在   Windows NT 4.0 中,Adsutil.vbs 通常位于 < 驅動器 >\WINNT\System32\Inetsrv\ Adminsamples 檔案夾。在 Windows 2000,Adsutil.vbs 位于 < 驅動器 >\Inetpub\ Adminscripts 檔案夾。

下表列出 Adsutil.vbs 實用工具各種功能的文法:

功能

文法

擷取 IUSR 帳戶密碼

cscript.exe adsutil.vbs get w3svc/anonymoususerpass

擷取 IWAM 帳戶密碼

cscript.exe adsutil.vbs get w3svc/wamuserpass

設定 IUSR 帳戶密碼

cscript.exe adsutil.vbs set w3svc/anonymoususerpass "password"

設定 IWAM 帳戶密碼

cscript.exe adsutil.vbs set w3svc/wamuserpass "password"

備注:

     在 Windows NT 4.0 中嘗試擷取密碼時,密碼顯示為明文;但在 Windows 2000

中,密碼顯示為星号。若要在 Windows 2000 中也讓密碼顯示為明文,必須修改 Ads

util.vbs,使它顯示明碼。為此,請按照下列步驟操作:

1. 在記事本中打開 Adsutil.vbs。

2. 在"編輯"菜單上,單擊查找,鍵入 IsSecureProperty = True,然後單擊查找下一個。

3. 将"IsSecureProperty = True"更改為"IsSecureProperty = False"。

4. 儲存對 Adsutil.vbs 所做的更改,然後關閉記事本。

後 來通路被拒絕的問題也解決了,原來我這個接口是要寫入到本地檔案夾下的一個檔案的。如果要可寫入的話必須給使用者以修改的權限,我當時隻是設定了 ASP.NET使用者的權限,結果忘了這個檔案配置裡還有個角色,那就是EveryOne,當我把EveryOne賦予可以修改的權限,接口就可以正常運作 了!

本文轉自gaodi2002 51CTO部落格,原文連結:http://blog.51cto.com/gaodi2002/1618192