كيفية الحصول على قائمة بـ النطاقات على شبكتك باستخدام واجهة برمجة تطبيقات ويندوز

إذا كنت مسؤول شبكة أو مطور يعمل مع Active Directory، فقد تحتاج في كثير من الأحيان إلى استرجاع قائمة بالنطاقات الموجودة في شبكتك. سواء لأغراض المراقبة أو إدارة الموارد أو لضمان بروتوكولات الأمان المناسبة، فإن الوصول إلى معلومات النطاقات أمر ضروري. في هذه التدوينة، سنشرح كيف يمكنك إتمام هذه المهمة باستخدام واجهة برمجة تطبيقات ويندوز مع استعلامات LDAP.

فهم المشكلة

للحصول على قائمة بجميع النطاقات على شبكتك، ستحتاج في الغالب للتفاعل مع Active Directory. التحدي يكمن في استخدام البروتوكول والاستعلامات الصحيحة لاستخراج هذه المعلومات بشكل فعال. لحسن الحظ، يمكن إتمام هذه المهمة باستخدام القليل من البرمجة النصية!

الحل

استخدام VBScript مع استعلامات LDAP

واحدة من أكثر الطرق السلسة لاسترجاع معلومات النطاق هي استخدام VBScript بالاشتراك مع استعلامات LDAP (بروتوكول الوصول إلى الدليل الخفيف). أدناه، سنرشدك عبر مثال نص برمجي يمكن تنفيذه على أي جهاز متصل بالشبكة حيث يتم استخدام Active Directory.

كود VBScript مثال

إليك النص البرمجي الذي يمكنك استخدامه لاسترجاع قائمة النطاقات:

' هذا الكود VBScript يحصل على قائمة النطاقات الموجودة في 
' الغابة التي تم تسجيل دخول المستخدم الذي يقوم بتشغيل النص البرمجي فيها

' ---------------------------------------------------------------
' من كتاب "دليل Active Directory" للكاتب روبي ألين
' الناشر: O'Reilly and Associates
' رقم ISBN: 0-596-00466-4
' موقع الكتاب على الويب: http://rallenhome.com/books/adcookbook/code.html
' ---------------------------------------------------------------

set objRootDSE = GetObject("LDAP://RootDSE")
strADsPath =  "<GC://" & objRootDSE.Get("rootDomainNamingContext") & ">;;"
strFilter  = "(objectcategory=domainDNS);"
strAttrs   = "name;"
strScope   = "SubTree"

set objConn = CreateObject("ADODB.Connection")
objConn.Provider = "ADsDSOObject"
objConn.Open "Active Directory Provider"
set objRS = objConn.Execute(strADsPath & strFilter & strAttrs & strScope)
objRS.MoveFirst
while Not objRS.EOF
    Wscript.Echo objRS.Fields(0).Value
    objRS.MoveNext
wend

تحليل النص البرمجي

  1. تهيئة اتصال LDAP:

    • يبدأ النص البرمجي بالحصول على مرجع لجذر الدليل.
    • GetObject("LDAP://RootDSE") يقوم باستخراج جذر الدليل.
  2. تحديد المسار ومرشحات الاستعلام:

    • strADsPath: يقوم بتحديد المسار لسياق تسمية النطاق.
    • strFilter: يحدد نوع الكائنات للبحث عنها؛ في هذه الحالة، فقط النطاقات.
  3. إقامة الاتصال:

    • يتم إنشاء الاتصال بـ Active Directory باستخدام ADODB.Connection.
  4. تنفيذ الاستعلام:

    • يتم تنفيذ استعلام Active Directory، وتخزين النتائج في كائن سجل.
  5. عرض النتائج:

    • يقوم النص البرمجي بالتكرار عبر مجموعة السجلات، مع عرض اسم كل نطاق حتى يتم عرض جميع الإدخالات.

موارد إضافية

بالنسبة لأولئك الذين يفضلون العمل ضمن بيئة C#، يتوفر هذا الإصدار من C# أيضًا. يمكن أن يوفر هذا البديل نتائج مشابهة مع اعتبارات تنفيذ مختلفة.

الخاتمة

استرجاع قائمة بالنطاقات على شبكتك هو عملية بسيطة عند استخدام واجهة برمجة تطبيقات ويندوز جنبًا إلى جنب مع استعلامات LDAP. باستخدام كود VBScript المقدم، يمكنك بسرعة وفعالية جمع البيانات الضرورية، مما يعزز قدرتك على إدارة موارد Active Directory. إذا كنت تبحث عن أداء إضافي أو ميزات، فكّر في استكشاف بديل C# للحصول على حل أكثر قوة.

الآن أنت مجهز بالأدوات لإدارة نطاقات شبكتك بكفاءة. حاول تنفيذ الكود أعلاه، وسترى مدى قوة البرمجة النصية في إدارة الشبكات!