INFO:Wscript.shell 对象的 Run 方法在 IIS 的系统上下文中执行命令

文章翻译 文章翻译
文章编号: 278319 - 查看本文应用于的产品
本文的发布号曾为 CHS278319
展开全部 | 关闭全部

概要

在进程内(Inetinfo.exe 内)运行的 Active Server Pages (ASP) 页中使用 Wscript.shell 对象的 run 方法时,将在系统上下文中执行所调用的命令。这是因为 run 方法使用 CreateProcess 启动命令。CreateProcess API 使用父进程标记执行命令。Inetinfo 进程在系统上下文中运行,因此,使用 run 方法执行的命令也在系统上下文中运行。这存在一定的安全风险,对于允许编辑和上载内容的站点来说,尤其是这样。

这一点只适用于在进程内运行的站点或应用程序。它是 IIS 4 中的默认设置。IIS 5 中的默认设置是进程外的池。

更多信息

服务器管理员可以通过这些步骤来控制风险:
  1. 配置 IIS 站点或应用程序,使它们在单独的进程中运行。

    对于 IIS 4:打开 Web 站点或虚拟目录应用程序的属性,然后单击主目录选项卡。选择在单独的内存空间运行(独立进程),然后单击确定

    对于 IIS 5:打开 Web 站点或虚拟目录应用程序的属性,然后单击主目录选项卡。从应用程序保护下拉列表选择中等(池)高(独立)。有关这些设置的更多信息,请参见 IIS 帮助。

    如果要继续在独立的 Web 应用程序中使用 wshell 对象,必须设置某些注册表项。有关其他信息,请单击下面的文章编号,查看 Microsoft 知识库中的文章:
    221081 HOWTO: Use Windows Script Host Scripts as CGI Scripts(将 Windows 脚本宿主的脚本用作 CGI 脚本)
  2. 注销 wshell 对象。

    为此,请从命令行执行以下命令:
    regsvr32 -u <路径> \Wshom.ocx
    <路径> 通常是 %SYSTEMROOT% \System32

属性

文章编号: 278319 - 最后修改: 2003年10月23日 - 修订: 1.3
这篇文章中的信息适用于:
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
关键字:?
kbinfo kbfix kbiis500 kbiis400 KB278319
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