摘要
在尝试从 Web 服务器 CGI 脚本的上下文中调用 Visual Basic 脚本,脚本可能无法正常运行。 对此最可能的原因是,脚本引擎通常安装时由 IIS 创建 IUSR_Machine 的安全上下文中执行。遗憾的是,Cscript.exe (脚本引擎) IUSR_Machine 用户需要的特定注册表项的存在。 由于注册表配置单元不能用于 IUSR_Machine,则 IIS 将加载 HKEY_USERS\。默认配置单元所在的位置。但是,HKEY_USERS\。默认配置单元不包含所需键和脚本引擎的项。在这些情况下,将会出现 CGI 错误,不带任何附加信息。或者,如果 Cscript.exe 文件在批处理模式下启动,将出现错误,指示无法加载指定的用户设置。本文将介绍如何配置 IIS 计算机允许使用 Visual Basic 脚本作为 CGI 脚本执行。
更多信息
本文假定,Windows 脚本宿主计算机上安装了 IIS 服务器;NT 选项包的默认安装选项将执行此操作。使用以下步骤来启用 VBScript 支持:
-
打开命令提示符。若要执行此操作,请执行以下步骤:
-
单击“开始”,然后单击“运行”。
-
键入cmd,然后单击确定。
-
-
定位到 Inetpub\AdminScripts 文件夹。(此位置取决于您的 Internet 信息服务器安装)。
-
键入以下命令:
cscript adsutil.vbs 设置 w3svc/CreateCGIWithNewConsole"1"
cscript adsutil.vbs 设置 w3svc/CreateProcessAsUser"0"
-
配置映射到位于 %SYSTEMROOT%\System32 目录中 Cscript.exe.vbs 扩展名。通过Microsoft 管理控制台执行此操作。具体来说,iis4 中的配置步骤如下所示:
-
运行 IIS4管理控制台应用程序。
-
编辑您的 Web 站点 (右击在 Web 站点中的树中显示和选择属性) 的属性。
-
选择主目录选项卡。
-
在应用程序设置框中,选择配置。
-
在应用程序映射选项卡上选择添加。
-
可执行文件将在 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 Internet 信息服务器联机文档。