代码之家  ›  专栏  ›  技术社区  ›  Brett McCann

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

  •  0
  • Brett McCann  · 技术社区  · 16 年前

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

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

    这是默认网站的命令,因为其标识符为1。但是,新的web应用程序将获得一个生成的标识符。在我的例子中,我安装的应用程序的标识符是2082238887,因此我的命令应该如下所示

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

    然而,我现在只知道这个值,从以前安装的应用程序。在新安装期间如何获取此ID?我看到的每个adsutil示例都假设您使用的是默认网站,因此ID为1。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Brett McCann    16 年前

    此脚本允许您将站点名称作为参数提供,并在网站上迭代,直到它与您提供的站点名称匹配为止。我包含了更新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