شرح Active Directory للمبتدئين: المستخدمون والمجموعات والوحدات التنظيمية

يقدّم لك هذا الشرح الفكرة كاملة من البداية: خدمة الدليل النشط (Active Directory)، واختصارها AD، هي دفتر العناوين وحارس الأمن في شبكة Windows. المستخدمون هم الأشخاص الذين يسجّلون الدخول. والمجموعات تجمع المستخدمين، فتمنح الصلاحية مرة واحدة بدلًا من خمسين مرة. أما الوحدات التنظيمية (Organizational Units)، واختصارها OUs، فهي مجلدات تحافظ على ترتيب كل شيء، وتُربط بها سياسات المجموعة (Group Policy). إن أردت أن تتذكر قاعدة واحدة فلتكن هذه: الوحدات التنظيمية للتنظيم، والمجموعات للصلاحيات.

شاهد الفيديو (8 دقائق):

فيما يلي سنبني هذه العناصر الثلاثة في نطاق حقيقي هو corp.mouhimen.dev، مع النقرات وأوامر PowerShell لكل خطوة، ثم نعالج أكثر أربعة أخطاء يقع فيها المبتدئون.

ما تحتاج إليه

  • وحدة تحكم بالنطاق (Domain Controller)، أي خادم Windows Server يعمل عليه دور Active Directory Domain Services. وحدة التحكم لدينا اسمها DC01. لا تملك وحدة تحكم بالنطاق بعد؟ المقال التالي في هذه السلسلة يشرح إعدادها من الصفر.
  • أداة Active Directory Users and Computers واختصارها ADUC. هي موجودة على كل وحدة تحكم بالنطاق، ويمكنك تثبيتها على جهازك الشخصي عبر أدوات RSAT (من Settings > System > Optional features > "RSAT: Active Directory Domain Services and Lightweight Directory Services Tools").
  • وحدة PowerShell المسماة ActiveDirectory، وهي تأتي مع ميزة RSAT نفسها.

الخطوة 1: افهم كيف ينتظم Active Directory

النطاق (Domain) قاعدة بيانات واحدة تضم كل شيء في شبكتك، والخوادم التي تحتفظ بها تُسمى وحدات التحكم بالنطاق. كل شيء داخل النطاق هو كائن (Object): مستخدم، أو حاسوب، أو مجموعة. عندما ينضم حاسوب محمول إلى النطاق يحصل هو أيضًا على حساب حاسوب، لذلك يعرف AD كل جهاز، لا كل شخص فقط.

لكل كائن عنوان يُسمى الاسم المميز (Distinguished Name) واختصاره DN. اقرأه من اليمين إلى اليسار كما تقرأ عنوانًا بريديًا:

CN=Abd almouhimen Shamout,OU=Staff,OU=Mouhimen,DC=corp,DC=mouhimen,DC=dev

معناه: في النطاق corp.mouhimen.dev، داخل الوحدة التنظيمية Mouhimen، داخل الوحدة التنظيمية Staff، يوجد المستخدم Abd almouhimen Shamout. ستلصق أسماءً مميزة كهذه في PowerShell باستمرار.

نصيحة في التسمية: اجعل اسم نطاق AD الجديد نطاقًا فرعيًا من نطاق تملكه فعلًا (corp.mouhimen.dev)، لا نطاقًا ينتهي بـ .local. توصي Microsoft باستخدام اسم مسجّل، كما أن .local يتعارض مع خدمة multicast DNS على أجهزة Mac وبعض أجهزة Linux.

الخطوة 2: أنشئ هيكل الوحدات التنظيمية

افتح ADUC وسترى مجلدًا اسمه Users. وهنا الفخ الأول: Users ليس وحدة تنظيمية. إنه حاوية (Container) افتراضية، ولا يمكنك ربط Group Policy بها. والأمر نفسه ينطبق على الحاوية الافتراضية Computers. لذلك سنبني شجرتنا الخاصة:

  1. انقر بزر الفأرة الأيمن على النطاق > New > Organizational Unit، وسمِّها Mouhimen.
  2. اترك خيار "Protect container from accidental deletion" (حماية الحاوية من الحذف غير المقصود) محددًا.
  3. أنشئ بداخلها الوحدات Staff وStudents وComputers وGroups وService Accounts.

والعمل نفسه في PowerShell، بأمر واحد لكل وحدة تنظيمية:

New-ADOrganizationalUnit -Name "Mouhimen" -Path "DC=corp,DC=mouhimen,DC=dev"

"Staff","Students","Computers","Groups","Service Accounts" | ForEach-Object {
    New-ADOrganizationalUnit -Name $_ -Path "OU=Mouhimen,DC=corp,DC=mouhimen,DC=dev"
}

اجعل الشجرة قليلة العمق. يكفي مستويان أو ثلاثة. أما شجرة من سبعة مستويات (منطقة، دولة، مدينة، مبنى، طابق، قسم…) فإدارتها صعبة والبحث فيها صعب.

لماذا تهم الوحدات التنظيمية إلى هذا الحد؟ لسببين:

  • سياسات المجموعة (Group Policy). اربط سياسة ما، مثل "قفل أجهزة المختبر بعد 10 دقائق"، بالوحدة التنظيمية Students، فيحصل عليها كل كائن بداخلها، بينما لا تنطبق على Staff.
  • تفويض الصلاحيات (Delegation). انقر بزر الفأرة الأيمن على Students > Delegate Control، واختر مجموعة Helpdesk، وحدد "Reset user passwords and force password change at next logon". صار بإمكان فريق الدعم الفني الآن إعادة تعيين كلمات مرور الطلاب دون أن يكونوا من Domain Admins (مسؤولي النطاق).

خطوة احترافية: الحواسيب الجديدة التي تنضم إلى النطاق تذهب إلى الحاوية الافتراضية Computers، حيث لا تصل إليها كائنات سياسات المجموعة (GPOs) الخاصة بك. وجّهها إلى وحدتك التنظيمية بدلًا من ذلك:

redircmp "OU=Computers,OU=Mouhimen,DC=corp,DC=mouhimen,DC=dev"

(والأمر redirusr يفعل الشيء نفسه لحسابات المستخدمين الجديدة.)

الخطوة 3: أنشئ حساب مستخدم

انقر بزر الفأرة الأيمن على الوحدة التنظيمية Staff > New > User:

الحقل القيمة
الاسم الأول (First name) Abd almouhimen
اسم العائلة (Last name) Shamout
اسم تسجيل الدخول (User logon name) abd.shamout @corp.mouhimen.dev
الاسم السابق لـ Windows 2000 (Pre-Windows 2000 name) CORP\abd.shamout

يصبح اسم تسجيل الدخول (UPN) هو abd.shamout@corp.mouhimen.dev. في الصفحة التالية، عيّن كلمة مرور أولى وحدد "User must change password at next logon" (يجب على المستخدم تغيير كلمة المرور عند تسجيل الدخول التالي). لا ينبغي لفريق الدعم الفني أن يعرف كلمة المرور الحقيقية لأي مستخدم.

بعد ذلك افتح Properties (خصائص) الحساب، واملأ المسمى الوظيفي والقسم والمكتب والبريد الإلكتروني. فالسكربتات ودفاتر العناوين ومزامنة Microsoft 365 تقرأ هذه الحقول لاحقًا.

والمستخدم نفسه في PowerShell:

New-ADUser -Name "Abd almouhimen Shamout" `
  -GivenName "Abd almouhimen" -Surname "Shamout" `
  -SamAccountName "abd.shamout" `
  -UserPrincipalName "abd.shamout@corp.mouhimen.dev" `
  -Path "OU=Staff,OU=Mouhimen,DC=corp,DC=mouhimen,DC=dev" `
  -Title "IT Support" -Department "IT" -EmailAddress "abd@mouhimen.dev" `
  -AccountPassword (Read-Host -AsSecureString "First password") `
  -ChangePasswordAtLogon $true -Enabled $true

هناك مهمتان ستؤديهما كل يوم: إعادة تعيين كلمة المرور وفك قفل الحساب. كلتاهما بنقرة بزر الفأرة الأيمن على المستخدم (Reset Password…) أو من تبويب Account (Unlock account). وللعثور على شخص بسرعة، انقر بزر الفأرة الأيمن على النطاق > Find، أو استخدم:

Get-ADUser -Filter "Name -like '*Shamout*'" -Properties LockedOut, LastLogonDate |
  Select-Object Name, SamAccountName, LockedOut, LastLogonDate

الخطوة 4: استخدم مجموعات الأمان للصلاحيات

عندما تنشئ مجموعة، يطلب منك Windows تحديد النوع (Type) والنطاق (Scope).

  • النوع: مجموعات Security (الأمان) تمنح الصلاحيات. أما مجموعات Distribution (التوزيع) فهي مجرد قوائم بريد إلكتروني. اختر Security.
  • النطاق: في نطاق واحد، يكون Global (عام) هو الخيار المعتاد لمجموعات الأشخاص. ومجموعات Domain local (محلية للنطاق) مخصصة للصلاحيات على مورد ما، مثل مجلد أو طابعة. أما مجموعات Universal (شاملة) فهي للغابات (Forests) التي تضم نطاقات متعددة.

أنشئ المجموعة IT-Staff في الوحدة التنظيمية Groups وأضف إليها المستخدم:

New-ADGroup -Name "IT-Staff" -GroupScope Global -GroupCategory Security `
  -Path "OU=Groups,OU=Mouhimen,DC=corp,DC=mouhimen,DC=dev"
Add-ADGroupMember -Identity "IT-Staff" -Members "abd.shamout"

والآن القاعدة الذهبية: امنح الصلاحيات للمجموعة، ولا تمنحها للشخص أبدًا. على المجلد المشترك \\FS01\IT، افتح تبويب Security، وأضف CORP\IT-Staff، واسمح بصلاحية Modify (تعديل). عندما ينضم شخص إلى الفريق، أضفه إلى المجموعة فيعمل المجلد معه مباشرة. وعندما يغادر، احذفه منها فيزول وصوله. لا حاجة إلى البحث في صلاحيات المجلدات واحدًا واحدًا.

في الشبكات الأكبر ستصادف نموذج AGDLP: توضع الحسابات (Accounts) في مجموعات عامة (Global)، وتوضع المجموعات العامة في مجموعات محلية للنطاق (Domain Local)، مثل DL-FS01-IT-Modify، ثم توضع الصلاحية (Permission) على المجموعة المحلية للنطاق. ابدأ ببساطة بمجموعة عامة واحدة لكل فريق، لكن احفظ هذا الاسم.

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

أدير Active Directory في كلية، وفي كل فصل دراسي يصل مئات الطلاب الجدد. لا أنشئ حساباتهم يدويًا، بل أستوردها من ملف CSV إلى الوحدة التنظيمية Students، ويُضاف كل طالب أيضًا إلى مجموعة الفصل الدراسي مثل Students-2026-Fall.

عندما ينتهي الفصل، لا أبحث عن الحسابات واحدًا واحدًا. سطر واحد يعطّل حسابات الفصل كله:

Get-ADGroupMember "Students-2026-Fall" | Disable-ADAccount

والدرس هنا: سمِّ مجموعاتك بطريقة يستطيع السكربت العثور عليها. اختر نمطًا واحدًا (Students-<Year>-<Term>) والتزم به. فمجموعة اسمها new group final (2) لا تفيد أحدًا. أشرح عملية الاستيراد الجماعي كاملة، بما فيها ترخيص Microsoft 365، في مقال إنشاء مستخدمي Active Directory بالجملة وترخيصهم عبر مجموعات Microsoft 365.

الأخطاء وحلولها

1. "Windows cannot access \\FS01\IT. You do not have permission…" مباشرة بعد إضافة المستخدم إلى المجموعة.
تُقرأ عضوية المجموعات عند تسجيل دخول المستخدم، لذلك ما زالت تذكرة تسجيل الدخول لديه تحمل القائمة القديمة. اطلب منه تسجيل الخروج ثم تسجيل الدخول من جديد، ثم تحقق:

whoami /groups

إذا ظهرت CORP\IT-Staff في القائمة، فسيفتح المجلد.

2. "The referenced account is currently locked out and may not be logged on to."
فك قفل الحساب من تبويب Account، أو باستخدام:

Unlock-ADAccount -Identity abd.shamout

إذا عاد الحساب إلى القفل خلال دقائق، فهناك كلمة مرور قديمة محفوظة في مكان ما: تطبيق البريد في الهاتف، أو محرك أقراص معيَّن (Mapped Drive)، أو ملف تعريف Wi-Fi، أو Windows Credential Manager (مدير بيانات الاعتماد).

3. "The password does not meet the password policy requirements."
تتطلب سياسة النطاق الافتراضية 7 أحرف على الأقل، وأحرفًا من 3 من هذه الأنواع الأربعة (أحرف كبيرة، أحرف صغيرة، أرقام، رموز)، وألا تحتوي على اسم المستخدم. كلمة المرور abd123 مرفوضة، أما Blue-Kettle-2026! فمقبولة. اجعلها أطول وحاول مرة أخرى.

4. "You do not have sufficient privileges to delete Mouhimen, or this object is protected from accidental deletion."
فعّل View > Advanced Features، ثم افتح Properties > Object للوحدة التنظيمية، وألغِ تحديد "Protect object from accidental deletion"، ثم احذفها. هذا الخيار أنقذك للتو من خطأ، فاتركه مفعّلًا في كل الوحدات التنظيمية الأخرى.

الأسئلة الشائعة

هل Active Directory هو نفسه Microsoft Entra ID (Azure AD)؟
لا. تعمل خدمة Active Directory Domain Services على وحدات التحكم بالنطاق الخاصة بك، وتدير الحواسيب المنضمة إلى النطاق وسياسات المجموعة والمجلدات المشتركة. أما Microsoft Entra ID فهي خدمة الهوية السحابية من Microsoft لـ Microsoft 365 وتطبيقات SaaS. وتزامن مؤسسات كثيرة بين الاثنين باستخدام Entra Connect.

ما الفرق بين الوحدة التنظيمية والمجموعة؟
الوحدة التنظيمية مجلد ينظّم الكائنات، وفيها تربط Group Policy وتفوّض صلاحيات الإدارة. أما المجموعة فقائمة أعضاء تستخدمها لمنح الصلاحيات. يوجد الكائن الواحد في وحدة تنظيمية واحدة فقط، لكنه يمكن أن ينتمي إلى مجموعات كثيرة.

هل يمكنني ربط Group Policy بالمجلد الافتراضي Users أو Computers؟
لا. فهما حاويتان، وليستا وحدتين تنظيميتين. انقل كائناتك إلى وحداتك التنظيمية الخاصة، واستخدم redircmp وredirusr لكي تذهب الكائنات الجديدة إليها تلقائيًا.

مجموعة عامة أم محلية للنطاق: أيهما أنشئ؟
لفريق من الأشخاص في نطاق واحد، أنشئ مجموعة عامة. واستخدم المجموعات المحلية للنطاق عندما تتبع نموذج AGDLP وتريد مجموعة واحدة لكل صلاحية على مورد.

هل أحتاج إلى PowerShell لإدارة Active Directory؟
ليس للعمل اليومي، فأداة ADUC تغطي كل ما ورد في هذا الشرح. لكن PowerShell يصبح مجديًا بمجرد أن تكرر مهمة ما، مثل إنشاء مستخدمين كثيرين أو تعطيل حسابات فصل دراسي كامل.

تابع التعلّم

المصادر


هذا المقال ترجمة عربية للمقال الأصلي باللغة الإنجليزية للكاتب عبد المهيمن شموط على mouhimen.dev.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *


الإتصال بنا

عملاء المركز التقني الكرام نتشرف بتواصلكم معنا حيث يمكن طلب خدمة او استفسار أو طلب دعم ... نفخر بثقتكم.

البريد الإلكتروني:
info@tec-c.net

إدارة و برمجة و تطوير :

عبد المهيمن محمد هشام شموط