Erhalten Sie IIS Web-Site-Kennung programmatisch
-
18-09-2019 - |
Frage
Ich versuche adsutil in einem Installationsskript von einem Web-App zu verwenden, auf das mir die Installation von IIS 6.0 Zugriffskontrolle einstellen. Es ist ein Befehl, der wie folgt funktioniert:
adsutil.vbs set w3svc/1/root/Authflags 4
Dies ist der Befehl für die Standard-Website, wie der Identifier ist 1. Aber auch neue Web-Anwendungen einen generierten Identifier angegeben. In meinem Fall wurde die App ich den Identifier von 2082238887 gegeben installiert, so dass mein Befehl soll wie folgt aussehen
adsutil.vbs set w3svc/2082238887/root/Authflags 4
Ich weiß jedoch, erst jetzt diesen Wert von bisher die App zu installieren. Wie würde ich diese ID bei einer Neuinstallation erhalten? Jedes Beispiel, das ich für adsutil gesehen habe vorausgesetzt, dass Sie mit der Standard-Website arbeiten, und daher eine ID von 1.
Ich brauche mein Skript installieren Sie die App zu installieren, bekommen seine Identifier, und dann verwenden, um Berechtigungen über adsutil einzustellen.
Lösung
Dieses Skript können Sie den Site-Namen als Parameter und iteriert über die Web-Seiten zur Verfügung stellen, bis sie den Site-Namen entspricht, die Sie zur Verfügung stellen. Ich enthalten den Code der AuthFlags zu aktualisieren. Dies kann über cscript.exe ausgeführt werden.
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