Obtenir identifiant du site Web IIS programme
-
18-09-2019 - |
Question
Je suis en train d'utiliser adsutil dans un script d'installation d'une application web j'installe sur IIS 6.0 pour définir le contrôle d'accès. Il y a une commande qui fonctionne comme suit:
adsutil.vbs set w3svc/1/root/Authflags 4
Ceci est la commande pour le site Web par défaut, comme identificateur est 1. Cependant, les nouvelles applications Web sont données un identifiant généré. Dans mon cas, l'application que j'ai installé a été donné l'identifiant de 2.082.238.887, donc ma commande devrait ressembler à ceci
adsutil.vbs set w3svc/2082238887/root/Authflags 4
Cependant, je sais que cette valeur maintenant d'installer l'application précédemment. Comment puis-je obtenir cet ID lors d'une nouvelle installation? Chaque exemple, je l'ai vu pour adsutil du principe que vous travaillez avec le site Web par défaut, et donc un identifiant de 1.
Je besoin de mon script d'installation pour installer l'application, obtenir son identificateur, puis l'utiliser pour définir des autorisations via adsutil.
La solution
Ce script vous permet de fournir le nom du site en tant que paramètre et itère sur les sites Web jusqu'à ce qu'il correspond au nom du site que vous fournissez. J'ai inclus le code pour mettre à jour les AuthFlags. Cela peut être exécuté 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