【问题标题】:Get IIS Web Site identifier programmatically以编程方式获取 IIS 网站标识符
【发布时间】:2010-12-24 11:55:59
【问题描述】:

我正在尝试在我在 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 设置权限。

【问题讨论】:

    标签: iis-6 adsutil.vbs


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-11
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 2012-04-23
      • 2010-09-30
      • 1970-01-01
      相关资源
      最近更新 更多