Ottenere identificatore del sito Web IIS di programmazione
-
18-09-2019 - |
Domanda
Sto cercando di utilizzare adsutil in uno script di installazione di una web app sto installando su IIS 6.0 per impostare il controllo di accesso. C'è un comando che funziona nel modo seguente:
adsutil.vbs set w3svc/1/root/Authflags 4
Questo è il comando per il sito Web predefinito, come il suo Identifier è 1. Tuttavia, le nuove applicazioni web sono date un identificatore generato. Nel mio caso, l'applicazione ho installato è stato dato l'identificatore di 2.082.238,887 mila, quindi il mio comando dovrebbe assomigliare a questo
adsutil.vbs set w3svc/2082238887/root/Authflags 4
Tuttavia, so solo questo valore ora di installare in precedenza l'applicazione. Come faccio a ottenere questo ID durante una nuova installazione? Ogni esempio che ho visto per adsutil presuppone che si sta lavorando con il sito web di default, e quindi un ID di 1.
Ho bisogno del mio script di installazione per installare l'app, ottenere il suo identificativo, e quindi utilizzarlo per impostare le autorizzazioni tramite adsutil.
Soluzione
Questo script consente di fornire il nome del sito come parametro e itera sui siti web fino a quando non corrisponde al nome del sito che fornisci. Ho incluso il codice per aggiornare i AuthFlags. Questo può essere eseguito tramite 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