Получить идентификатор веб-сайта IIS программно
Я пытаюсь использовать adsutil в сценарии установки веб-приложения, которое я устанавливаю на IIS 6.0, для настройки контроля доступа. Есть команда, которая работает следующим образом:
adsutil.vbs set w3svc/1/root/Authflags 4
Это команда для веб-сайта по умолчанию, поскольку его Идентификатор равен 1. Однако новым веб-приложениям присваивается сгенерированный Идентификатор. В моем случае приложению, которое я установил, был присвоен идентификатор 2082238887, поэтому моя команда должна выглядеть так
adsutil.vbs set w3svc/2082238887/root/Authflags 4
Тем не менее, я знаю это значение только по предыдущей установке приложения. Как бы я получить этот идентификатор во время новой установки? Каждый пример, который я видел для adsutil, предполагает, что вы работаете с веб-сайтом по умолчанию, и, следовательно, с идентификатором 1.
Мне нужен мой скрипт установки, чтобы установить приложение, получить его идентификатор, а затем использовать его для установки разрешений через adsutil.
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