احصل على معرف موقع الويب الخاص ب IIS برمجيا

StackOverflow https://stackoverflow.com/questions/1868108

  •  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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top