摘要
當嘗試從 Web 伺服器的 CGI 指令碼內容中呼叫 Visual Basic 指令碼,指令碼可能無法正常執行。 最可能的原因是,指令碼引擎通常會執行安裝時,由 IIS 建立 sr_machine 的安全性內容中。不幸的是,Cscript.exe (指令碼引擎) 需要 sr_machine 使用者的特定登錄項目存在。 因為 HKEY_CURRENT_USER hive 不適用於 sr_machine,IIS 就會載入 HKEY_USERS\。預設 hive,在它的位置。不過,HKEY_USERS\。預設 hive 不包含必要的機碼和指令碼引擎的項目。在這些情況下,會發生 CGI 錯誤,不加任何其他的資訊。或者,如果批次模式啟動 Cscript.exe 檔案,則會出現錯誤指出無法載入指定的使用者的設定。這份文件會顯示如何設定 IIS 電腦,以允許執行的 CGI 指令碼為 Visual Basic 指令碼。
其他相關資訊
本文假設 Windows 指令檔主機已安裝 IIS 伺服器上;預設安裝選項的 NT 選項套件將會執行這項操作。若要啟用 VBScript 支援,請使用下列步驟:
-
開啟 [命令提示字元]。若要執行這項操作,請參考下列步驟:
-
按一下 [開始],再按一下 [執行]。
-
輸入cmd,然後按一下[確定]。
-
-
找出 [Inetpub\AdminScripts] 資料夾。(這個位置會因您的網際網路資訊伺服器安裝)。
-
輸入下列命令:
cscript adsutil.vbs 設定 w3svc CreateCGIWithNewConsole"1"
cscript adsutil.vbs 設定 w3svc CreateProcessAsUser"0"
-
設定對應至位於 %SYSTEMROOT%\System32 目錄 Cscript.exe.vbs 副檔名。透過Microsoft 管理主控台執行這項操作。具體來說,IIS4 的組態步驟如下所示:
-
執行 IIS4管理主控台應用程式。
-
編輯您的網站 (中選取 [屬性與樹狀目錄顯示在網站上按一下滑鼠右鍵) 的屬性。
-
選取 [主目錄] 索引標籤。
-
在應用程式設定] 方塊中,選取 [組態]。
-
在 [應用程式對應] 索引標籤選取 [新增]。
-
可執行檔會是下列 WinNT 4.0 電腦 (,請務必先使用 WinNT 安裝上的正確路徑 Cscript.exe) 上:
C:\WINNT\system32\CSCRIPT.EXE.exe %s %s
輸入.vbs副檔名。
-
請確定已選取 [指令碼引擎,並檢查檔案存在] 核取方塊。
-
儲存檔案,再按一下[確定]、套用、 [確定]及[確定] 。
-
-
使用登錄編輯程式,建立下列機碼和項目:
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Script HostHKEY_USERS\.DEFAULT\Software\Microsoft\Windows Script Host\Settings
請確認每個人都有這些兩個機碼的 「 讀取 」 權限。現在,請建立下列的項目之下:
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Script Host\SettingsBatchMode: REG_DWORD: 0DisplayLogo: REG_DWORD: 0Timeout: REG_DWORD: 0
-
現在將.vbs 指令碼檔案複製到具有執行/指令碼的權限的伺服器上的虛擬目錄中。預設的 /scripts 目錄會具有必要的權限。
您應該能夠測試是否設定的運作方式,或不是藉由建立下列的指令碼:
Option ExplicitWScript.Echo "Content-Type: text/html"WScript.EchoWScript.Echo "If you see this, it worked."
儲存在 /scripts 目錄中的上述指令碼,為 Test.vbs。現在您可以叫用指令碼的任何瀏覽器中使用下列 URL:
http://server/scripts/test.vbs.
附註: 類似的限制適用於所有情況下,從本機系統或模擬使用者的本機系統的安全性內容啟動 Cscript.exe 指令碼的位置。登錄上述的變更應該可以補救這些情況。
參考
Microsoft 網際網路資訊伺服器線上文件。