您目前已離線,請等候您的網際網路重新連線

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

本文曾發行於 CHT261205
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。
重要:本文包含編輯登錄的資訊。在編輯系統登錄之前,請確定萬一發生問題時,您知道如何復原系統登錄。若需還原作業的相關資訊,請參閱 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 翻譯的。若要參考原始英文文件內容,請至以下網址:

Windows 2000 iis 5
內容

文章識別碼:261205 - 最後檢閱時間:05/28/2000 15:19:00 - 修訂: 1.0

Microsoft Internet Information Services 5.0

  • kboswin2000 kbpending kbprb KB261205
意見反應