以编程方式获取IIS网站标识符

时间:2009-12-08 16:27:25

标签: iis-6 adsutil.vbs

我正在尝试在我在IIS 6.0上安装的Web应用程序的安装脚本中使用adsutil来设置访问控制。有一个命令如下:

adsutil.vbs set w3svc/1/root/Authflags 4

这是默认网站的命令,因为其标识符为1.但是,新的网络应用程序将获得生成的标识符。在我的情况下,我安装的应用程序被赋予标识符2082238887,所以我的命令应该是这样的

adsutil.vbs set w3svc/2082238887/root/Authflags 4

但是,我现在只知道以前安装应用程序的这个值。在全新安装过程中如何获取此ID?我在adsutil上看到的每个例子都假设您正在使用默认网站,因此ID为1.

我需要安装脚本来安装应用,获取其标识符,然后使用它通过adsutil设置权限。

1 个答案:

答案 0 :(得分:2)

此脚本允许您将站点名称作为参数提供,并迭代网站,直到它与您提供的站点名称相匹配。我包含了更新authflags的代码。这可以通过cscript.exe运行。

Dim Siteobj
Dim Site
Dim SiteName
Dim SiteId
Dim SiteLocation

SiteName=WScript.Arguments( 0 )

Set SiteObj = GetObject("IIS://localhost/W3SVC")

for each Site in Siteobj

  if Site.keytype="IIsWebServer" Then  

    if Site.ServerComment = SiteName Then

      SiteId=Site.Name     

      SiteLocation = "IIS://LocalHost/w3svc/" & SiteId
      SiteLocation = SiteLocation & "/root"

      Dim SiteObj1
      Set SiteObj1  = GetObject(SiteLocation)
      SiteObj1.authflags=4
      SiteObj1.SetInfo

    End if    
  End if 
Next