Получить идентификатор веб-сайта IIS программно
-
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