Obtener identificador del sitio Web de IIS mediante programación
-
18-09-2019 - |
Pregunta
Estoy tratando de utilizar adsutil en un script de instalación de una aplicación web Estoy instalando en IIS 6.0 para establecer el control de acceso. Hay un comando que funciona de la siguiente manera:
adsutil.vbs set w3svc/1/root/Authflags 4
Este es el comando para el sitio web por defecto, como su identificador es 1. Sin embargo, las nuevas aplicaciones web se les da un identificador generado. En mi caso, la aplicación que he instalado se le dio el Identificador de 2082238887, por lo que mi comando debería tener este aspecto
adsutil.vbs set w3svc/2082238887/root/Authflags 4
Sin embargo, sólo sé este valor ahora de instalar previamente la aplicación. ¿Cómo puedo obtener esta identificación durante una instalación nueva? Todos los ejemplos que he visto en adsutil supone que está trabajando con el sitio web por defecto, y por lo tanto un ID de 1.
Necesito mi script de instalación para instalar la aplicación, obtener su identificador, y luego usarlo para establecer los permisos a través de adsutil.
Solución
Este script le permite proporcionar el nombre del sitio como parámetro y itera a través de los sitios web hasta que coincida con el nombre del sitio que proporcione. He incluido el código para actualizar los AuthFlags. Esto se puede ejecutar a través de 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