IIS 웹 사이트 식별자를 프로그래밍 방식으로 받으십시오
-
18-09-2019 - |
문제
IIS 6.0에 설치중인 웹 앱의 설치 스크립트에서 Adsutil을 사용하여 액세스 컨트롤을 설정하려고합니다. 다음과 같이 작동하는 명령이 있습니다.
adsutil.vbs set w3svc/1/root/Authflags 4
이는 식별자가 1이므로 기본 웹 사이트의 명령입니다. 그러나 새 웹 앱은 생성 된 식별자가 제공됩니다. 제 경우에 설치 한 앱에 2082238887의 식별자가 제공되었으므로 내 명령은 다음과 같이 보일 것입니다.
adsutil.vbs set w3svc/2082238887/root/Authflags 4
그러나 이전에 앱을 설치 한 것만으로는이 값 만 알고 있습니다. 새로운 설치 중에이 ID를 어떻게 얻을 수 있습니까? 내가 adsutil에 대해 본 모든 예는 당신이 기본 웹 사이트에서 작업한다고 가정하므로 1의 ID를 가정합니다.
앱을 설치하고 식별자를 가져온 다음 adsutil을 통해 권한을 설정하는 데 사용하려면 설치 스크립트가 필요합니다.
해결책
이 스크립트를 사용하면 사이트 이름을 매개 변수로 제공하고 제공하는 사이트 이름과 일치 할 때까지 웹 사이트를 반복 할 수 있습니다. Authflags를 업데이트하기 위해 코드를 포함 시켰습니다. 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
제휴하지 않습니다 StackOverflow