Obter identificador Web Site IIS programaticamente
-
18-09-2019 - |
Pergunta
Eu estou tentando usar adsutil em um script de um aplicativo web Estou instalando no IIS 6.0 Para definir o controle de acesso de instalação. Há um comando que funciona da seguinte forma:
adsutil.vbs set w3svc/1/root/Authflags 4
Este é o comando para o site padrão, como seu identificador é 1. No entanto, novas aplicações web são dadas um identificador gerado. No meu caso, o aplicativo que eu instalei foi dado o Identificador de 2082238887, por isso o meu comando deve olhar como este
adsutil.vbs set w3svc/2082238887/root/Authflags 4
No entanto, eu só sei que este valor agora de instalar previamente o aplicativo. Como eu poderia obter este ID durante uma nova instalação? Cada exemplo que eu tenho visto por adsutil assume que você está trabalhando com o web site padrão e, portanto, uma ID de 1.
Eu preciso do meu script de instalação para instalar o aplicativo, obter o seu identificador, e depois usá-lo para definir permissões via adsutil.
Solução
Este script permite que você forneça o nome do site como um parâmetro e repete ao longo dos sites até que ele corresponda o nome do site que você fornece. Eu incluí o código para atualizar os AuthFlags. Isso pode ser executado via 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