Получить идентификатор веб-сайта IIS программно

StackOverflow https://stackoverflow.com/questions/1868108

  •  18-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать рекламу в сценарии установки веб-приложения, которое я устанавливаю в IIS 6.0, чтобы установить контроль доступа.Есть команда, которая работает следующим образом:

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

Это команда для веб-сайта по умолчанию, поскольку его идентификатор равен 1.Однако новым веб-приложениям присваивается сгенерированный идентификатор.В моем случае установленному приложению был присвоен идентификатор 2082238887, поэтому моя команда должна выглядеть следующим образом.

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

Однако теперь я знаю это значение только благодаря предыдущей установке приложения.Как мне получить этот идентификатор во время новой установки?В каждом примере, который я видел для рекламы, предполагается, что вы работаете с веб-сайтом по умолчанию и, следовательно, с идентификатором 1.

Мне нужен сценарий установки, чтобы установить приложение, получить его идентификатор, а затем использовать его для установки разрешений черезadsutil.

Это было полезно?

Решение

Этот сценарий позволяет вам указать имя сайта в качестве параметра и перебирать веб-сайты, пока оно не будет соответствовать указанному вами имени сайта.Я включил код для обновления флагов аутентификации.Это можно запустить через 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top