當在Windows 2003 、2000、XP中安裝好IIS後,預設FSO組件是安裝好並開啟的,然而在設計ASP程式的時候,經常會發現FSO功能不好用,於是上網看了很多文章,自己總結了一下。各位可按下列方法進行調試:
方法一:
一、系統沒有開啟FSO組件
系統沒有開啟FSO組件.
FSO組件的開啟和關閉方法
Dll 檔案的註冊和登出:
運行cmd命令
注消FSO組件:RegSvr32 /u %windir%/SYSTEM32/scrrun.dll
啟用FSO命令:RegSvr32 %windir%/SYSTEM32/scrrun.dll
二、多次注消、啟動後還是出現錯誤,原因是沒許可權,不知道怎麼造成的,下邊提供解決方案
許可權出現了問題,開啟註冊表加入許可權!
在 開始-運行中敲入regedit,然後找到HKEY_CLASSES_ROOT/Scripting.FileSystemObject
右擊許可權,加入everyone,internet來賓帳號(IUSR...)使用者確定,然後重新啟動IIs即可搞定!
方法二:
首先,在WINDOWS檔案夾內搜尋scrrun.dll,如果有就進行下一步,如果沒有,下載一個。
然後,開始,運行,輸入,regsvr32 scrrun.dll,確定 系統會提示scrrun.dll註冊成功。
用動易提供的探針檢查一下就會發現空間已有FSO支援了。
Windows中開啟和關閉FSO檔案讀寫權限的方法 Windows中開啟和關閉FSO檔案讀寫權限的方法:
windows98系統在DOS命令列狀態輸入以下命令:
關閉命令:RegSvr32 /u C:/WINDOWS/SYSTEM/scrrun.dll
開啟命令:RegSvr32 C:/WINDOWS/SYSTEM/scrrun.dll
win2000系統:在CMD命令列狀態輸入以下命令:
關閉命令:RegSvr32 /u C:/WINNT/SYSTEM32/scrrun.dll
開啟命令:RegSvr32 C:/WINNT/SYSTEM32/scrrun.dll
Windows XP/2003:在MS-DOS狀態下面鍵入:
關閉命令:Regsvr32 /u c:/windows/system32/scrrun.dll
開啟命令:Regsvr32 c:/windows/system32/scrrun.dll
當在本地測試網站時,IE報錯 Microsoft VBScript 執行階段錯誤 (0x800A01AD) 就應該去考慮用上面的解決辦法了.
方法三:現在絕大多數的虛擬機器主機都禁用了 ASP 的標準組件:FileSystemObject,因為這個組件為 ASP 提供了強大的
檔案系統訪問能力,可以對伺服器硬碟上的任何檔案進行讀,寫,複製,刪除,改名等操作(當然,這是指在
使用預設設定的 Windows NT / 2000 下才能做到).但是禁止此組件後,引起的後果就是所有利用這個組件的
ASP 將無法運行,無法滿足客戶的需求.
如何既允許 FileSystemObject 組件,又不影響伺服器的安全性(即:不同虛擬機器主機使用者之間不能使用該組件
讀寫別人的檔案)呢 這裡介紹本人在實驗中獲得的一種方法,下文以 Windows 2000 Server 為例來說明.
在伺服器上開啟資源管理員,用滑鼠右鍵點擊各個硬碟分區或卷的盤符,在快顯功能表中選擇"屬性",選擇"
安全"選項卡,此時就可以看到有哪些帳號可以訪問這個分區(卷)及存取權限.預設安裝後,出現的是"Eve
ryone"具有完全控制的許可權.點"添加",將"Administrators","Backup Operators","Power Users
","Users"等幾個組添加進去,並給予"完全控制"或相應的許可權,注意,不要給"Guests"組,"IUSR_
機器名"這幾個帳號任何許可權.然後將"Everyone"組從列表中刪除,這樣,就只有授權的組和使用者才能訪問
此硬碟分區了,而 ASP 執行時,是以"IUSR_機器名"的身份訪問硬碟的,這裡沒給該使用者帳號許可權,ASP 也
就不能讀寫硬碟上的檔案了.
下面要做的就是給每個虛擬機器主機使用者佈建一個單獨的使用者帳號,然後再給每個帳號分配一個允許其完全控制的
目錄.
如所示,開啟"電腦管理"→"本機使用者和組"→"使用者",在右欄中點擊滑鼠右鍵,在彈出的菜單中
選擇"新使用者":
在彈出的"新使用者"對話方塊中根據實際需要輸入"使用者名稱","全名","描述","密碼","確認密碼"
,並將"使用者下次登入時須更改密碼"前的對號去掉,選中"使用者不能更改密碼"和"密碼永不到期".本例
是給第一虛擬機器主機的使用者建立一個匿名訪問 Internet 資訊服務的內建帳號"IUSR_VHOST1",即:所有用戶端
使用 http://***.***.***x/ 訪問此虛擬機器主機時,都是以這個身份來訪問的.輸入完成後點"建立"即可.可
以根據實際需要,建立多個使用者,建立完畢後點"關閉":
現在建立立的使用者已經出現在帳號列表中了,在列表中雙擊該帳號,以便進一步進行設定:
在彈出的"IUSR_VHOST1"(即剛才建立的新帳號)屬性對話方塊中點"隸屬於"選項卡:
剛建立的帳號預設是屬於"Users"組,選中該組,點"刪除":
出現的是如所示,此時再點"添加":
333;this.alt='Click Here to Open New Window';}" border=0>
在彈出的"選擇組"對話方塊中找到"Guests",點"添加",此組就會出現在下方的文字框中,然後點"確定
,點"確定"關閉此對話方塊:
{this.width=screen.width-開啟"Internet 資訊服務",開始對虛擬機器主機進行設定,本例中的以對"第一虛擬機器主機"設定為例進行說明,
右擊該主機名稱,在彈出的菜單中選擇"屬性":
彈出一個"第一虛擬機器主機屬性"的對話方塊,從對話方塊中可以看到該虛擬機器主機使用者的使用的是"F:/VHOST1"這
暫時先不管剛才的"第一虛擬機器主機屬性"對話方塊,切換到"資源管理員",找到"F:/VHOST1"(原文是單只修
改這一個目錄,我覺得還是把整個盤符的everyone許可權去了,增加administrators組,比較好)這個檔案夾,右
擊,選"屬性"→"安全"選項卡,此時可以看到該檔案夾的預設安全設定是"Everyone"完全控制(視不同
情況顯示的內容不完全一樣),首先將最將下的"允許將來自父系的可繼承許可權傳播給該對象"前面的對號去
掉:
將中所示的"Administrator"(原文寫的是administrator 但我覺得還是應該是administrators組,比較
好)及在前面所建立的新帳號"IUSR_VHOST1"添加進來,將給予完全控制的許可權,還可以根據實際需要添加其
他組或使用者,但一定不要將"Guests"組,"IUSR_機器名"這些匿名訪問的帳號添加上去!
再切換到前面開啟的"第一虛擬機器主機屬性"的對話方塊,開啟"目錄安全性"選項卡,點匿名訪問和驗證控制的
"編輯":
在彈出的"驗證方法"對方框(如所示),點"編輯":
彈出了"匿名使用者帳號",預設的就是"IUSR_機器名",點"瀏覽":
在"選擇使用者"對話方塊中找到前面建立的新帳號"IUSR_VHOST1",雙擊:
此時匿名使用者名就改過來了,在密碼框中輸入前面建立時,為該帳號設定的密碼:
再確定一遍密碼:
OK,完成了,點確定關閉這些對話方塊.
經此設定後,"第一虛擬機器主機"的使用者,使用 ASP 的 FileSystemObject
組件也只能訪問自己的目錄:F:/VHOST1 下的內容,當試圖訪問其他內容時,會出現諸如"沒有許可權","硬
盤未準備好","500 伺服器內部錯誤"等出錯提示了.
另:如果該使用者需要讀取硬碟的分區容量及硬碟的序號,那這樣的設定將使其無法讀取.如果要允許其
讀取這些和整個分區有關的內容,請右鍵點擊該硬碟的分區(卷),選擇"屬性"→"安全",將這個使用者的
帳號添加到列表中,並至少給予"讀取"許可權.由於該卷下的子目錄都已經設定為"禁止將來自父系的可繼承
許可權 A如果想關閉FSO組件,請運行regsvr32 /u scrrun.dll即可。