احصل على معرف موقع الويب الخاص ب IIS برمجيا
-
18-09-2019 - |
سؤال
أحاول استخدام ADSUTIL في برنامج نصي التثبيت لتطبيق الويب، وأنا أقوم بتثبيت IIS 6.0 لتعيين التحكم في الوصول. هناك أمر يعمل كما يلي:
adsutil.vbs set w3svc/1/root/Authflags 4
هذا هو الأمر الخاص بموقع الويب الافتراضي، حيث أن معرفه هو 1. ومع ذلك، يتم إعطاء تطبيقات ويب جديدة معرف تم إنشاؤه. في حالتي، تم إعطاء التطبيق الذي قمت بتثبيته معرف 2082238887، لذلك يجب أن يبدو الأمر الخاص بي
adsutil.vbs set w3svc/2082238887/root/Authflags 4
ومع ذلك، أنا أعرف فقط هذه القيمة الآن من تثبيت التطبيق مسبقا. كيف يمكنني الحصول على هذا المعرف أثناء تثبيت جديد؟ كل مثال رأيته في ADSUTIL يفترض أنك تعمل مع موقع الويب الافتراضي، وبالتالي معرف 1.
أحتاج إلى برنامج التثبيت الخاص بي لتثبيت التطبيق، واحصل على معرفه، ثم استخدمه لتعيين الأذونات عبر 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