如何使用 Windows Script Host 指令檔當做 CGI 指令檔

文章翻譯 文章翻譯
關閉 關閉
文章編號: 261205 - 檢視此文章適用的產品。
本文曾發行於 CHT261205
重要:本文包含編輯登錄的資訊。在編輯系統登錄之前, 請確定萬一發生問題時,您知道如何復原系統登錄。若需還原作業 的相關資訊,請參閱 Regedit.exe 中的〈還原登錄〉說明主題,或 Regedt32.exe 中的〈還原登錄機碼〉說明主題。
全部展開 | 全部摺疊

徵狀

當您嘗試在 CGI 指令碼內容中從 Web 伺服器呼叫 Visual Basic 指令碼時, 指令碼可能會無法正確執行。

發生的原因

這個問題的發生原因通常是指令碼引擎一般是在由 IIS 所建立的 IUSR_MachineName 帳戶 的安全性內容中執行,不過,Cscript.exe 檔案 (指令碼引擎) 在它用來執行的使用者內容 (對匿名存取而言,這是指 IUSR_MachineName 帳戶) 中,必須擁有特定的登錄項目。因為 HKEY_CURRENT_USER Hive 控制檔是為了 IUSR_Machine 帳戶而建立,所以 IIS 會將 HKEY_USERS\.DEFAULT Hive 控制檔載入其位置。不過, HKEY_USERS\.DEFAULT Hive 控制檔並不包含指令碼引擎的必要機碼及項目。

在這種情況下,會發生 CGI 錯誤訊息,且無任何其他資訊。這對 CGI 錯誤訊息 而言是正確的行為。如果您對實際的 HTTP 錯誤訊息進行偵錯,看到的則會是 HTTP 502 502 Bad Gateway: (The server received an invalid response from the server from which it was trying to retrieve information) (不正確的閘道:伺服器從它嘗試接收資訊 的伺服器接收了無效的回應) 錯誤訊息。

如果要設定 IIS 電腦,使 Visual Basic 指令碼可當做 CGI 指令碼來執行,請參閱 本文的〈詳細資訊〉一節。

其他相關資訊

Windows Script Host 是安裝在所有的 Windows 2000 (IIS 5.0) 電腦上。 請使用下列步驟來啟用 Visual Basic 指令碼支援:
  1. 將 .vbs 副檔名設定成對應到位於 %SYSTEMROOT%\System32 資料夾中的 Cscript.exe 檔案。如果要透過 Microsoft Management Console (MMC) 執行這項作業, 則 IIS 4.0 的設定步驟如下:

    1. 請開啟 IIS 4.0 Management Console 應用程式。
    2. 用滑鼠右鍵按一下網站,然後再按一下 [內容]
    3. 按一下 [主目錄] 索引標籤。
    4. [應用程式設定] 對話方塊中,選取 [設定]
    5. [應用程式對應] 索引標籤上按一下 [新增]
    6. Windows NT 4.0 電腦上的可執行檔如下 (請確定使用正確的 Cscript.exe 路徑)。
    7. C:\WINNT\system32\CSCRIPT.EXE.exe %s %s
    8. 輸入 .vbs 做為副檔名。
    9. 請確定選取了 [指令引擎] [檢查該檔案是否存在] 核取方塊。
    10. 按一下 [確定] 來儲存檔案。按一下 [套用] ,然後按兩次 [確定]
  2. 在「登錄編輯器」中,建立下列的登錄機碼和項目:
    HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Scripting Host
    HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Scripting Host\Settings
    請確定每個帳戶都可讀取這兩個登錄機碼。

    在 HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Scripting Host\Settings 登錄機碼下新增下列項目:
    BatchMode: REG_DWORD: 0
    DisplayLogo: REG_DWORD: 0
    Timeout: REG_DWORD: 0
  3. 執行下列步驟來新增中繼資料庫參數。

    警告:不正確地使用 Adsutil.vbs 可能導致嚴重的問題,而使您必須 重新安裝 Internet Information Server 4.0。Microsoft 無法保證不正確 使用 Adsutil.vbs 導致的問題可以解決。請自行承擔使用 Adsutil.vbs 的風險。

    如果要設定值,請執行下列步驟:

    開啟命令視窗 (cmd),然後前往 Inetpub\AdminScripts 目錄 (這個位置可能會根據 Internet Information Server 的安裝位置而改變)。 請用下列語法輸入下列命令:
    cscript adsutil.vbs SET w3svc/CreateCGIWithNewConsole "1"
    cscript adsutil.vbs SET w3svc/CreateProcessAsUser "0"
    將 .vbs 指令碼檔複製到具有 execute/script 權限的伺服器的虛擬目錄中。 依預設值,Scripts 目錄具有必要的權限。 您可以建立下列的指令檔來測試設定:
       Option Explicit
       WScript.Echo
       WScript.Echo "If you see this, it worked."
    以 Test.vbs 的名稱將上面的指令碼檔儲存在 Scripts 目錄中,然後 再用下列的 URL 在任何瀏覽器中呼叫該指令碼檔。
       http://server/scripts/test.vbs.
注意 :從本機系統的安全性內容或模擬某使用者的本機系統啟動 Cscript.exe 指令碼時,都有類似的限制。上述對登錄的變更應該可以補救這些情況。

?考

本文件是根據 Microsoft Knowledge Base 文件編號 Q261205 翻譯的。若要參考原始英文文件內容,請至以下網址:

http://support.microsoft.com/support/kb/articles/Q261/2/05.asp

屬性

文章編號: 261205 - 上次校閱: 2000年5月28日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft Internet Information Services 5.0
關鍵字:?
kboswin2000 kbpending kbprb KB261205
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com