كيفية إضافة مستخدم إلى النظام المحلي باستخدام خدمات الدليل و Visual C #

للحصول على إصدار Microsoft Visual Basic.NET من هذه المقالة، راجع 306271 .


تشير هذه المقالة إلى مساحة الاسم Microsoft.NET Framework مكتبة الفئة التالية:
  • System.DirectoryServices

في هذه المهمة

ملخص

يوضح هذا المقال خطوة بخطوة كيفية استخدام مساحة الاسم DirectoryServices لإضافة مستخدم إلى مجموعة والنظام المحلي.

متطلبات

  • نظام التشغيل Microsoft Windows XP أو Windows 2000 أو Windows NT 4.0
  • Visual C #

إنشاء نموذج

  1. بدء تشغيل Microsoft Visual Studio.NET 2003 أو Visual Studio 2005 ل Microsoft أو Microsoft Visual Studio 2008 ثم قم بإنشاء مشروع تطبيق Visual C# وحدة تحكم جديدة.
  2. في "مستكشف الحلول"، انقر بالزر الأيمن مراجع، وثم انقر فوق إضافة مرجع.
  3. إضافة مرجع إلى التجميع System.DirectoryServices.dll .
  4. استبدال التعليمات البرمجية في الملف Class1.cs مع التعليمات البرمجية التالية.

    ملاحظة: في Microsoft Visual C# 2005 أو Microsoft Visual C# 2008، يتم استبدال الملف Class1.cs بملف Program.cs.
    using System;using System.DirectoryServices;

    class Class1
    {
    static void Main(string[] args)
    {
    try
    {
    DirectoryEntry AD = new DirectoryEntry("WinNT://" +
    Environment.MachineName + ",computer");
    DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");
    NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});
    NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
    NewUser.CommitChanges();
    DirectoryEntry grp;

    grp = AD.Children.Find("Guests", "group");
    if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
    Console.WriteLine("Account Created Successfully");
    Console.ReadLine();
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    Console.ReadLine();

    }
    }
    }

  5. ترجمة وتشغيل المشروع.
  6. اتبع هذه الخطوات على جهاز كمبيوتر يستند إلى نظام التشغيل Windows 2000 للتحقق من أن الحساب التي تم إنشاؤها وإضافتها إلى مجموعة الضيف:

    1. من القائمة ابدأ ، أشر إلى البرامجوأشر إلى أدوات إدارية، ومن ثم انقر فوق إدارة الكمبيوتر.
    2. انقر فوق لتوسيع العقدة المستخدمون المحليون والمجموعات المحلية . يجب أن تظهر حساب جديد ضمن عقده المستخدمين وكذلك تحت عقده مجموعة الضيف .
    اتبع هذه الخطوات على جهاز كمبيوتر يستند إلى نظام التشغيل Windows XP للتحقق من أن الحساب التي تم إنشاؤها وإضافتها إلى مجموعة الضيف:
    1. من القائمة ابدأ ، انقر فوق لوحة التحكم.
    2. انقر نقراً مزدوجاً فوق حسابات المستخدمين. حساب المستخدم الجديد يجب أن تظهر في مربع الحوار حسابات المستخدمين .
    ملاحظة هامة: إزالة حساب المستخدم التي تم إنشاؤها حديثا من النظام بعد الانتهاء من اختبار.

شرح التعليمات البرمجية

إنشاء إدخال جديد في الدليل

عند إنشاء إدخال دليل في هذا النموذج، فمن المفترض أن النظام التشغيل Microsoft Windows NT أو Windows 2000 أو نظام التشغيل Windows XP. علما بأن تبدأ بالسلسلة التي تم تمريرها إلى المنشئ DirectoryEntry "WinNT://". يمكنك أيضا تشغيل "خدمات الدليل" على أنظمة تشغيل جهة خارجية أخرى.

DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");

إضافة إدخال دليل إلى شجرة دليل

إضافة التعليمات البرمجية التالية DirectoryEntry من النوع المستخدم بقيمة TestUser1 إلى شجرة الدليل النشط .

DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");

تعيين كلمة مرور ووصفاً لحساب المستخدم الجديد

استدعاء التعليمات البرمجية التالية استدعاء الأسلوب لاستدعاء أساليب تعيين كلمة المرور و وضع الكائن DirectoryEntry . هذا يقوم بتعيين كلمة المرور ويقوم بتعيين وصف لحساب المستخدم. هذه التعليمات البرمجية أيضا باستدعاء الأسلوب CommitChanges لحفظ التغييرات.

NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
NewUser.CommitChanges();

إضافة الحساب إلى مجموعة

لإضافة الحساب إلى مجموعة، اتبع هذه الخطوات:
  1. تعريف متغير من نوع DirectoryEntry.
  2. استدعاء الأسلوب العثور على عضو الأطفال من فئة ActiveDirectory لملء المتغير. في هذه الحالة، مجموعة الضيف هو هدف للبحث. تختبر هذه التعليمات البرمجية قيمة إرجاع الأسلوب البحث لتحديد إذا تم العثور على المجموعة. إذا تم العثور على المجموعة، تتم إضافة حساب مستخدم جديد إلى المجموعة.
DirectoryEntry grp;grp = AD.Children.Find("Guests", "group");
if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}

استكشاف الأخطاء وإصلاحها

فشل التعليمات البرمجية في هذه المقالة إذا حاولت تشغيل تعليمات برمجية دون امتيازات كافية لإنشاء حساب مستخدم. للتعليمات البرمجية بنجاح، المستخدم المسجل للدخول حاليا يجب أن تكون عضوا مجموعة المسؤولين أو الأذونات المحددة التي تسمح للمستخدم بإنشاء حسابات المستخدمين.

خصائص

رقم الموضوع: 306273 - آخر مراجعة: 18‏/01‏/2017 - المراجعة: 1

تعليقات