【问题标题】:How to debug ASP permission problems with WScript.Shell object?如何调试 WScript.Shell 对象的 ASP 权限问题?
【发布时间】:2010-10-28 04:36:42
【问题描述】:

我必须从一些旧的 ASP 应用程序运行命令行操作。

这是我的代码:

<%
    cmd = "%comspec% /c echo Hello"    

    set wsh = CreateObject("WScript.Shell")
    ireturn = wsh.Run(cmd, 0, true)
    set wsh = nothing
%>

这是我收到的结果:

Microsoft VBScript 运行时错误 '800a0046'

权限被拒绝

/test.asp,第 6 行

你知道如何让 IIS6 运行这段代码吗?

注意:当然我不必运行 echo 命令,但我想排除问题的任何其他原因。

更新:我尝试了 tomalaks 提到的大多数事情,但没有任何帮助。也许我可以稍微改变一下问题。 如何调试此问题?

【问题讨论】:

    标签: security asp-classic vbscript iis-6 permissions


    【解决方案1】:

    ASP 通常被拒绝访问任何有潜在危险的东西,例如 cmd.exe。检查 cmd.exe 上的文件权限,看看这是否适合您(我想是的)。

    如果您真的必须使用 cmd.exe 进行部分页面处理,请更改 cmd.exe 上的文件权限(不推荐用于面向 Internet 的 Web 服务器),或者确保ASP 页运行的凭据不会被拒绝访问该文件。

    为此,请使用 IIS 管理控制台删除对 ASP 页面的“匿名访问”并改用 Windows 集成身份验证(如果可行),或者保留“匿名访问”并输入一组固定的凭据,这些凭据应该代替默认的“IUSR_...”。

    或者,如果您使用 cmd.exe 只是为了启动一个向 STDOUT 输出内容的程序,您可以尝试直接启动该程序,而无需将其包装在 cmd.exe 调用中。同样,运行 ASP 页面的用户需要访问该程序的可执行文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-24
      • 2011-03-01
      • 2019-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多