شاهد الفيديو (دقيقتان):
مع بداية كل فصل دراسي في الكلية تصل دفعة جديدة من الطلاب. يحتاج كل طالب إلى حساب في Active Directory، وهي خدمة الدليل التي تدير المستخدمين والأجهزة في الشبكة. ويحتاج أيضًا إلى ترخيص (License) في Microsoft 365. إذا أنجزت ذلك يدويًا، مستخدمًا تلو الآخر، فسيستغرق يومًا كاملًا ويفتح الباب للأخطاء الإملائية.
هذه هي الطريقة التي أستخدمها فعليًا في عملي، وهي تختصر ذلك اليوم إلى بضع دقائق:
- مجموعة أمان واحدة لكل فصل دراسي.
- ملف CSV يضم الطلاب الجدد.
- سكربت (Script) بلغة PowerShell ينشئ المستخدمين ويضيفهم إلى المجموعة.
- مزامنة تفاضلية (Delta Sync) إلى Microsoft Entra ID، أي مزامنة التغييرات الجديدة فقط.
- تعيين ترخيص واحد فقط، وذلك للمجموعة.
كيف تترابط الأجزاء معًا
students.csv ──> Import-Students.ps1 ──> AD users in OU=Fall2026
└─> member of Students-Fall2026
│ (Entra Connect sync)
▼
Microsoft 365 admin center: license assigned to Students-Fall2026
│
▼
every member gets the license automatically
الخطوة 1: أنشئ مجموعة واحدة لكل فصل دراسي
أنشئ وحدة تنظيمية (OU) للفصل الدراسي، مثل OU=Fall2026,OU=Students,DC=college,DC=local. ثم أنشئ داخلها مجموعة أمان (Security Group) باسم مثل Students-Fall2026.
المجموعة هي المفتاح هنا. ففي الخطوة 5 ستمنح الترخيص للمجموعة لا للأشخاص، والتراخيص تتبع عضوية المجموعة. كما أن السكربت أدناه ينشئ المجموعة إن لم تكن موجودة بعد.
تأكد من أن الوحدة التنظيمية تقع ضمن نطاق المزامنة (Sync Scope) في Entra Connect. وإلا فلن يصل المستخدمون ولا المجموعة إلى السحابة أبدًا.
الخطوة 2: جهّز ملف CSV
تكفي ثلاثة أعمدة:
FirstName,LastName,StudentID
Abd Almouhimen,Shamout,s2026001
Abd,Shamout,s2026002
Mouhimen,Dev,s2026003
إذا حصلت على القائمة من Excel، فاستخدم File > Save As > CSV UTF-8. بهذا تبقى الأسماء صحيحة، سواء احتوت على حروف لاتينية بعلامات (Accents) أو على حروف عربية.
الخطوة 3: شغّل سكربت PowerShell
شغّله على خادم منضم إلى النطاق (Domain-joined) ومثبّتة عليه وحدة ActiveDirectory، وهي جزء من أدوات RSAT. استخدم حسابًا يملك صلاحية إنشاء المستخدمين في الوحدة التنظيمية المستهدفة.
<#
Import-Students.ps1
Bulk-create new students in Active Directory and add them to the semester group.
Microsoft 365 licenses then follow the group (group-based licensing).
CSV columns: FirstName,LastName,StudentID
#>
param(
[string]$CsvPath = ".\students.csv",
[string]$OU = "OU=Fall2026,OU=Students,DC=college,DC=local",
[string]$Group = "Students-Fall2026",
[string]$UpnSuffix = "college.edu", # must be a verified domain in Microsoft 365
[string]$OutFile = ".\new-students-passwords.csv"
)
Import-Module ActiveDirectory
# One random temporary password per student (12 chars, mixed)
function New-TempPassword {
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789!@#$%'
-join (1..12 | ForEach-Object { $chars[(Get-Random -Maximum $chars.Length)] })
}
# Create the semester group once, if it doesn't exist yet
if (-not (Get-ADGroup -Filter "Name -eq '$Group'")) {
New-ADGroup -Name $Group -GroupScope Global -GroupCategory Security `
-Path $OU -Description "New students - licensed in Microsoft 365"
}
$results = foreach ($s in Import-Csv $CsvPath) {
$sam = $s.StudentID.Trim()
$upn = "$sam@$UpnSuffix"
if (Get-ADUser -Filter "SamAccountName -eq '$sam'") {
Write-Warning "$sam already exists - skipped"
continue
}
$temp = New-TempPassword
New-ADUser -Name "$($s.FirstName) $($s.LastName)" `
-GivenName $s.FirstName -Surname $s.LastName -DisplayName "$($s.FirstName) $($s.LastName)" `
-SamAccountName $sam -UserPrincipalName $upn -EmailAddress $upn `
-Path $OU -AccountPassword (ConvertTo-SecureString $temp -AsPlainText -Force) `
-ChangePasswordAtLogon $true -Enabled $true
Add-ADGroupMember -Identity $Group -Members $sam
Write-Host "Created $upn and added to $Group" -ForegroundColor Green
[pscustomobject]@{ Name = "$($s.FirstName) $($s.LastName)"; UPN = $upn; TempPassword = $temp }
}
# Hand-out list for the IT office. Store it safely and delete it after use.
$results | Export-Csv $OutFile -NoTypeInformation
شغّله بهذه الطريقة:
.\Import-Students.ps1 -CsvPath .\students.csv -Group "Students-Fall2026"
ما الذي يفعله السكربت مع كل صف:
- يتخطى الطالب الذي يوجد رقمه مسبقًا، لذا يمكنك تشغيله مرتين دون خوف.
- ينشئ المستخدم في الوحدة التنظيمية الخاصة بالفصل الدراسي، باسم مستخدم رئيسي (UPN) على نطاقك في Microsoft 365. والـ UPN هو اسم الدخول الذي يشبه عنوان البريد الإلكتروني.
- يعيّن كلمة مرور مؤقتة عشوائية، ويفرض تغييرها عند أول تسجيل دخول.
- يضيف المستخدم إلى مجموعة الفصل الدراسي.
- يحفظ قائمة بكلمات المرور المؤقتة لتوزيعها على الطلاب. تعامل مع هذا الملف على أنه ملف حساس، واحذفه بعد توزيع كلمات المرور.
نصيحة: اختبر السكربت أولًا بملف CSV فيه صفان فقط. وأضف
-WhatIfإلىNew-ADUserوAdd-ADGroupMemberلإجراء تشغيل تجريبي يعرض ما سيحدث دون أن ينفّذ أي تغيير.
الخطوة 4: زامِن المستخدمين إلى السحابة
مستخدموك موجودون في البيئة المحلية (On-premises)، لذا يجب أن يصلوا إلى Microsoft Entra ID قبل أن تتمكن من ترخيصهم. يُجري Entra Connect المزامنة كل 30 دقيقة افتراضيًا. إذا أردت إرسالهم الآن، فشغّل هذا الأمر على خادم Entra Connect:
Start-ADSyncSyncCycle -PolicyType Delta
بعد انتهاء المزامنة، يظهر المستخدمون والمجموعة Students-Fall2026 في مركز إدارة Microsoft 365.
الخطوة 5: عيّن الترخيص للمجموعة
- افتح مركز إدارة Microsoft 365 (Microsoft 365 admin center).
- انتقل إلى Billing > Licenses واختر خطتك، مثل Microsoft 365 A3 for students.
- افتح تبويب Groups واختر Assign licenses.
- اختر
Students-Fall2026ثم أكّد.
هذا كل شيء. يحصل كل عضو على الترخيص، وكل من تضيفه إلى المجموعة لاحقًا يحصل على ترخيصه تلقائيًا. وإذا أزلت طالبًا من المجموعة، يعود ترخيصه متاحًا.
تحقّق من النتيجة
افتح حساب أي طالب في مركز الإدارة (Users > Active users) وانظر إلى قسم Licenses and apps. ستجد أن الترخيص معيّن عن طريق المجموعة، لا بشكل مباشر.
أمور يجب معرفتها قبل البدء
- متطلبات الترخيص: يحتاج الترخيص المعتمد على المجموعات (Group-based Licensing) إلى Microsoft Entra ID P1 أو أعلى، أو Office 365 E3 أو أعلى، سواء كان الاشتراك مدفوعًا أو تجريبيًا. تأكد من أن خطتك التعليمية تتضمنه.
- عدد كافٍ من التراخيص: تحتاج إلى ترخيص لكل عضو في المجموعة المرخّصة. إذا نفدت تراخيص الخطة، يبقى بعض الطلاب في حالة خطأ. راجع أخطاء التراخيص الخاصة بالمجموعة في مركز إدارة Microsoft Entra.
- موقع الاستخدام (Usage Location): في الترخيص المعتمد على المجموعات، يرث المستخدم الذي لا يملك موقع استخدام موقعَ المستأجر (Tenant)، أي حساب مؤسستك في Microsoft 365. إذا كان لديك طلاب في عدة دول، فعيّن هذا الموقع ضمن خطوات إنشاء المستخدم.
- لا مجموعات متداخلة: الأعضاء المباشرون في المجموعة المرخّصة هم وحدهم من يحصلون على الترخيص. لا تضع مجموعة داخل مجموعة أخرى.
- وقت المعالجة: قد تستغرق معالجة المجموعات الكبيرة بعض الوقت، خاصة في المستأجرين الكبار.
- تغيير كلمة المرور عند تسجيل الدخول: فرض تغيير كلمة المرور يتم في البيئة المحلية. إذا كان الطلاب سيسجّلون دخولهم الأول إلى Microsoft 365 في السحابة، فتحقق مما إذا كان إعداد Entra Connect لديك يزامن هذا الشرط.
المصادر
- Microsoft Learn: تعيين التراخيص لمجموعة
- Microsoft Learn: سيناريوهات إضافية للترخيص المعتمد على المجموعات
- Microsoft Learn: إدارة التراخيص (المتطلبات)
- Microsoft Learn: مُجدوِل مزامنة Entra Connect
شاهد الفيديو:
Abd Almouhimen Shamout، من Take away support: حلول لمشكلات تقنية المعلومات تصلك في أقل من دقيقتين. المزيد على mouhimen.dev.
هذا المقال ترجمة عربية للمقال الأصلي باللغة الإنجليزية للكاتب عبد المهيمن شموط على mouhimen.dev.
