通过ASP动态更改脚本在IIS6中执行目录的权限

时间:2010-01-09 08:05:55

标签: asp-classic vbscript iis-6

这是一个高级问题,希望你们中的一个asp / VB大师会有一个建议。我试图从asp页面动态设置IIS6中的文件夹的执行权限。我已授予服务器完全权限以进行必要的更改。当我运行代码时,我得到了:

Microsoft VBScript运行时错误'800a0046'

权限被拒绝:'GetObject'

/learning.asp,第11行

我有一个服务器设置,IIS6运行几个asp网站。我使用这样的代码来创建一个名为“files”的文件夹

set fso = Server.CreateObject("Scripting.FileSystemObject")

set folder3 = fso.CreateFolder(Server.MapPath(username & "/files"))

set folder3 = nothing

set fso = nothing

正常工作,并在我想要的地方创建文件夹。但是,新文件夹的执行权限设置为“scripts and exe”,我需要它是“never”或false。有一个系统对象可以调用来进行这个更改,我甚至有一段代码是我在阅读完另一个教程后写的。

它不起作用并给出上述错误。我想,也许,我只是留下了一些东西,但这些东西有点过头了。这是我使用的,但我不知道语法或究竟要调用什么。

Set root = GetObject("IIS://localhost/" & username)

Set newVDir = root.Create("IIsWebVirtualDir","files")

newVDir.Path = "e:\iis3\server2\ADSI"

newVDir.AccessScript = False

newVDir.SetInfo

我已经搜索了3天,试图找到解决方案,但显然没有很多人做这类事情,因为我找不到关于它的帖子。

无论如何,我不明白getobject应该做什么,以及我应该使用什么newVDir.path?

提前感谢您提供任何有用的建议。

1 个答案:

答案 0 :(得分:1)

这篇文章(参见http://technet.microsoft.com/en-us/library/bb742439.aspx)解释了GetObject实际做了什么。

我相信,幕后发生的事情是(需要)创建一个“IIS Admin Service”类型的COM对象来执行操作。默认情况下,不允许IIS应用程序池帐户创建此类对象。所以也许值得检查一下。打开控制面板 - >管理服务,运行“组件服务”。在树中找到“我的电脑”,找到“IIS管理服务”。检查“激活”和“启动”权限,必要时添加一些权限。