الدليل الشامل لإدارة Microsoft 365 واستكشاف أخطائها — Exchange Online وTeams وCopilot 2026

دليل عملي شامل لإدارة Microsoft 365 واستكشاف أخطائها يغطي Exchange Online وTeams وOneDrive وSharePoint وCopilot وإدارة التراخيص ومراقبة صحة الخدمة باستخدام PowerShell — مع دروس مستفادة من انقطاع يناير 2026

مقدمة: لماذا يحتاج كل فني دعم فني لإتقان Microsoft 365 في 2026؟

لنكن صريحين — إذا كنت تعمل في مجال الدعم الفني اليوم، فإن Microsoft 365 هو محور حياتك المهنية بالكامل. البريد عبر Exchange Online، الاجتماعات عبر Teams، التخزين السحابي عبر OneDrive وSharePoint... كل شيء تقريبًا يمر من خلال هذه المنظومة. وعندما يتعطل أي جزء منها؟ تتوقف إنتاجية المؤسسة بأكملها، وتبدأ التذاكر بالتدفق كالسيل.

وصدقني، ما حدث في يناير 2026 كان خير دليل على ذلك.

في 22 يناير 2026، تعرضت خدمات Microsoft 365 لانقطاع كبير استمر قرابة 24 ساعة، أثّر على Outlook وTeams وSharePoint وExchange Online — وحتى لوحات إدارة الأمان مثل Microsoft Defender وPurview. تجاوزت البلاغات 30,000 مستخدم في ذروة الأزمة، وظهرت رسائل خطأ مثل 451 4.3.2 temporary server issue عند محاولة إرسال أو استقبال البريد. السبب؟ جزء من البنية التحتية في أمريكا الشمالية توقف عن معالجة حركة البيانات بشكل صحيح. والأسوأ من ذلك أن محاولة Microsoft لتسريع الاسترداد عبر تغيير إعدادات موازنة الأحمال أدت فعليًا إلى تفاقم المشكلة (نعم، هذا حدث فعلاً).

هذا الدليل مُصمم لك — سواء كنت فني دعم في الخط الأول، أو مسؤول نظام، أو مدير تقنية معلومات. سنغطي كل ما تحتاجه لإدارة Microsoft 365 بكفاءة: من تشخيص مشاكل البريد الإلكتروني إلى حل مشكلات Teams، ومن إدارة التراخيص إلى مراقبة صحة الخدمة باستخدام PowerShell. فلنبدأ.

الأدوات الأساسية لإدارة Microsoft 365 واستكشاف الأخطاء

1. مركز إدارة Microsoft 365 (Admin Center)

مركز الإدارة هو نقطة البداية لأي مسؤول نظام. من خلاله تستطيع إدارة المستخدمين والتراخيص والمجموعات والأجهزة ومراقبة صحة الخدمة. للوصول إليه، انتقل إلى admin.microsoft.com وسجّل الدخول بحساب المسؤول.

أهم الأقسام التي ستتعامل معها يوميًا:

  • المستخدمون النشطون (Active Users): لإدارة الحسابات وإعادة تعيين كلمات المرور وتعيين التراخيص.
  • صحة الخدمة (Service Health): لمراقبة حالة جميع خدمات Microsoft 365 والاطلاع على الأعطال — وهذا القسم ستزوره كثيرًا، صدقني.
  • مركز الرسائل (Message Center): للاطلاع على التغييرات القادمة والتحديثات المخططة.
  • التقارير (Reports): لعرض إحصائيات الاستخدام وتقارير البريد والأمان.
  • أدوات التشخيص (Diagnostics): لتشغيل أدوات تشخيص مدمجة لمشاكل محددة كتسليم البريد وحالة المستخدم.

2. أداة Microsoft Support and Recovery Assistant (SaRA)

أداة SaRA هي بصراحة واحدة من أكثر الأدوات فائدة لفنيي الدعم الفني، لكن كثيرين لا يعرفونها أو لا يستخدمونها بالشكل الكافي. هذه الأداة تقوم تلقائيًا بتشغيل اختبارات تشخيصية وتحديد المشاكل الشائعة في Outlook وTeams وOffice 365 وتقدم حلولًا فورية.

الجميل في SaRA أنها متوفرة أيضًا كأداة سطر أوامر (Enterprise Version) يمكن تشغيلها عبر PowerShell أو سكربتات. وهذا يجعلها مثالية للنشر على نطاق واسع في بيئات المؤسسات.

# تحميل النسخة المؤسسية من SaRA
# الرابط الرسمي: https://aka.ms/SaRA_EnterpriseVersionFiles

# تشغيل سيناريو تشخيص Outlook
SaraCmd.exe -S OlkCalCheck -AcceptEula

# تشغيل سيناريو إعادة تعيين تنشيط Office
SaraCmd.exe -S ResetOfficeActivation -AcceptEula

# تشغيل سيناريو تشخيص Teams
SaraCmd.exe -S TeamsAddinScenario -AcceptEula

3. PowerShell — سلاحك الأقوى

إذا كنت تريد الانتقال من مستوى "فني دعم عادي" إلى "مسؤول نظام محترف"، فإن PowerShell هو المفتاح. ببساطة، يتيح لك أتمتة المهام المتكررة، واستخراج تقارير مفصلة، وتشخيص المشاكل بسرعة لا تقارن بالواجهة الرسومية.

أول خطوة هي تثبيت الوحدات المطلوبة والاتصال بخدمات Microsoft 365:

# تثبيت وحدة Exchange Online PowerShell
Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber

# تثبيت وحدة Microsoft Graph PowerShell
Install-Module -Name Microsoft.Graph -Force -AllowClobber

# تثبيت وحدة Microsoft Teams
Install-Module -Name MicrosoftTeams -Force -AllowClobber

# الاتصال بـ Exchange Online
Connect-ExchangeOnline -UserPrincipalName [email protected]

# الاتصال بـ Microsoft Graph
Connect-MgGraph -Scopes "User.Read.All", "Organization.Read.All"

# الاتصال بـ Microsoft Teams
Connect-MicrosoftTeams

استكشاف مشاكل البريد الإلكتروني (Exchange Online)

مشكلة: البريد لا يصل إلى المستلم

هذه واحدة من أكثر التذاكر شيوعًا في أي مكتب دعم فني — "أرسلت بريدًا ولم يصل". سمعناها جميعًا مئات المرات. قبل أن تفترض أي شيء، ابدأ بتتبع الرسالة:

# تتبع رسالة محددة خلال آخر 48 ساعة
Get-MessageTrace -SenderAddress [email protected] -RecipientAddress [email protected] -StartDate (Get-Date).AddHours(-48) -EndDate (Get-Date) | Format-List

# تتبع جميع الرسائل الفاشلة من مستخدم معين
Get-MessageTrace -SenderAddress [email protected] -Status Failed -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) | Format-Table Received, SenderAddress, RecipientAddress, Subject, Status

# الحصول على تفاصيل مسار الرسالة
Get-MessageTraceDetail -MessageTraceId "GUID-HERE" -RecipientAddress [email protected] | Format-List

# عرض تقرير شامل عن حالة تدفق البريد
Get-MailFlowStatusReport -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date)

النتائج ستخبرك بالضبط أين توقفت الرسالة. إليك الحالات الشائعة:

  • Delivered: الرسالة وصلت بنجاح — المشكلة غالبًا في صندوق البريد الوارد أو قواعد التصفية عند المستلم.
  • Failed: فشل الإرسال — تحقق من رسالة الخطأ في التفاصيل (غالبًا مشكلة DNS أو سجل SPF/DKIM/DMARC).
  • FilteredAsSpam: تم تصنيف الرسالة كبريد عشوائي — تحقق من إعدادات مكافحة البريد العشوائي.
  • Quarantined: الرسالة في الحجر الصحي — يمكن للمسؤول إطلاقها.
  • Pending: الرسالة في قائمة الانتظار — قد تكون هناك مشكلة في الخادم المستلم.

مشكلة: رسائل الخطأ NDR (تقارير عدم التسليم)

عندما يتلقى المستخدم رسالة ارتداد (bounce back)، رمز الخطأ يحتوي على معلومات قيّمة جدًا. إليك أكثر رموز الخطأ شيوعًا وكيف تتعامل معها:

  • 550 5.1.1 — المستلم غير موجود: تحقق من عنوان البريد الإلكتروني. في أغلب الأحيان يكون مجرد خطأ إملائي أو حساب محذوف.
  • 550 5.7.1 — مرفوض بسبب السياسة: تحقق من قواعد النقل (Transport Rules) وسياسات مكافحة البريد العشوائي.
  • 452 4.5.3 — صندوق البريد ممتلئ: المستلم تجاوز حصته. إذا كان مستخدمًا داخليًا، قم بزيادة الحصة أو اطلب منه تنظيف صندوقه.
  • 451 4.3.2 — مشكلة مؤقتة في الخادم: هذا بالذات هو الخطأ الذي ظهر خلال انقطاع يناير 2026. عادةً ما يكون من جانب Microsoft وسيُحل تلقائيًا — لكن تحقق من Service Health أولًا.
  • 550 5.4.1 — خطأ في التوجيه: تحقق من سجلات MX لنطاق المستلم.
# التحقق من سجلات MX لنطاق معين
Resolve-DnsName -Name "externaldomain.com" -Type MX

# التحقق من سجل SPF
Resolve-DnsName -Name "yourdomain.com" -Type TXT | Where-Object {$_.Strings -like "*spf*"}

# التحقق من DKIM
Resolve-DnsName -Name "selector1._domainkey.yourdomain.com" -Type CNAME

# التحقق من DMARC
Resolve-DnsName -Name "_dmarc.yourdomain.com" -Type TXT

مشكلة: صندوق البريد المشترك لا يعمل بشكل صحيح

صناديق البريد المشتركة (Shared Mailboxes) هي مصدر شائع للمشاكل — خصوصًا مشاكل الأذونات. إليك كيفية تشخيصها وإصلاحها:

# التحقق من أذونات صندوق البريد المشترك
Get-MailboxPermission -Identity "[email protected]" | Format-Table User, AccessRights

# التحقق من أذونات الإرسال نيابةً
Get-RecipientPermission -Identity "[email protected]" | Format-Table Trustee, AccessRights

# إضافة أذونات الوصول الكامل لمستخدم
Add-MailboxPermission -Identity "[email protected]" -User "[email protected]" -AccessRights FullAccess -AutoMapping $true

# إضافة أذونات الإرسال نيابةً
Add-RecipientPermission -Identity "[email protected]" -Trustee "[email protected]" -AccessRights SendAs -Confirm:$false

# التحقق من حجم صندوق البريد المشترك
Get-MailboxStatistics -Identity "[email protected]" | Select-Object DisplayName, TotalItemSize, ItemCount

استكشاف مشاكل Microsoft Teams

مشكلة: المستخدم لا يستطيع تسجيل الدخول إلى Teams

مشاكل تسجيل الدخول في Teams من أكثر التذاكر إحباطًا، لأن الأسباب المحتملة كثيرة ومتشعبة. إليك خطوات التشخيص المنهجية التي أتبعها شخصيًا:

  1. تحقق من حالة الخدمة أولاً: قبل أن تبدأ بتشخيص جهاز المستخدم، ألقِ نظرة على لوحة صحة الخدمة في مركز الإدارة. بعد انقطاع يناير 2026، تعلمنا جميعًا أن نبدأ دائمًا من هنا.
  2. تحقق من الترخيص: تأكد أن المستخدم لديه ترخيص Teams مُفعّل.
  3. امسح ذاكرة التخزين المؤقت لـ Teams: هذه الخطوة وحدها تحل نسبة كبيرة من المشاكل.
  4. تحقق من إعدادات الوكيل (Proxy) والجدار الناري: Teams يحتاج للوصول إلى نقاط نهاية محددة، وكثيرًا ما تكون المشكلة هنا.
# التحقق من ترخيص Teams لمستخدم محدد عبر Microsoft Graph
Connect-MgGraph -Scopes "User.Read.All"
$user = Get-MgUser -UserId "[email protected]" -Property AssignedLicenses
$user.AssignedLicenses | Format-Table SkuId

# الحصول على تفاصيل تراخيص المؤسسة
Get-MgSubscribedSku | Select-Object SkuPartNumber, ConsumedUnits, @{N="TotalUnits";E={$_.PrepaidUnits.Enabled}} | Format-Table

# مسح ذاكرة التخزين المؤقت لـ Teams (على جهاز المستخدم - Windows)
# أغلق Teams أولاً ثم نفذ الأمر التالي:
Remove-Item -Path "$env:APPDATA\Microsoft\Teams\*" -Recurse -Force -ErrorAction SilentlyContinue

# التحقق من اتصال Teams بالخوادم
Test-NetConnection -ComputerName "teams.microsoft.com" -Port 443
Test-NetConnection -ComputerName "outlook.office365.com" -Port 443

مشكلة: جودة المكالمات والاجتماعات رديئة

عندما يشتكي المستخدمون من صوت متقطع أو فيديو متجمد في اجتماعات Teams، المشكلة في الغالب تكون في الشبكة. وأحيانًا يكون الحل بسيطًا بشكل مفاجئ.

أولاً، استخدم لوحة جودة المكالمات (Call Quality Dashboard - CQD) في مركز إدارة Teams للحصول على بيانات مفصلة. يمكنك الوصول إليها من cqd.teams.microsoft.com.

ثانيًا، تحقق من متطلبات الشبكة الأساسية لـ Teams:

  • عرض النطاق الترددي: اجتماعات الفيديو عالية الجودة تحتاج على الأقل 1.5 ميجابت/ثانية لكل مشارك.
  • زمن الاستجابة (Latency): يجب أن يكون أقل من 50 مللي ثانية.
  • فقدان الحزم (Packet Loss): أقل من 1%.
  • الارتعاش (Jitter): أقل من 30 مللي ثانية.
# اختبار جودة الاتصال بخوادم Teams
# تشغيل Network Assessment Tool من Microsoft
# تحميل الأداة: https://www.microsoft.com/en-us/download/details.aspx?id=53885

# اختبار زمن الاستجابة والاتصال
Test-NetConnection -ComputerName "worldaz.tr.teams.microsoft.com" -Port 3478

# اختبار سرعة الاتصال مع PowerShell (بسيط)
$url = "https://teams.microsoft.com"
$time = Measure-Command { Invoke-WebRequest -Uri $url -UseBasicParsing }
Write-Host "Response Time: $($time.TotalMilliseconds) ms"

# عرض سياسات اجتماعات Teams
Get-CsTeamsMeetingPolicy | Select-Object Identity, AllowIPVideo, VideoBitsPerSecondKb, AllowSharedNotes | Format-Table

مشكلة: قنوات Teams أو الفرق لا تظهر

أحيانًا يُضاف مستخدم إلى فريق لكنه لا يراه في قائمة الفرق. مشكلة مزعجة لكن حلها عادةً بسيط:

# التحقق من عضوية المستخدم في فريق معين
Get-TeamUser -GroupId "GROUP-ID-HERE" | Where-Object {$_.User -eq "[email protected]"}

# إضافة مستخدم إلى فريق
Add-TeamUser -GroupId "GROUP-ID-HERE" -User "[email protected]" -Role Member

# عرض جميع الفرق التي ينتمي إليها مستخدم
Get-Team -User "[email protected]" | Select-Object DisplayName, GroupId, Visibility | Format-Table

# عرض جميع القنوات في فريق
Get-TeamChannel -GroupId "GROUP-ID-HERE" | Select-Object DisplayName, MembershipType | Format-Table

إدارة التراخيص واستكشاف مشاكلها

فهم نظام التراخيص في Microsoft 365

إدارة التراخيص من أهم مهام مسؤول Microsoft 365 — وأكثرها تعقيدًا في رأيي. كل ترخيص يتضمن مجموعة من الخدمات (Service Plans)، ويمكنك تفعيل أو تعطيل كل خدمة على حدة. مثلًا، ترخيص Microsoft 365 E3 يتضمن Exchange Online وSharePoint وTeams وOffice وغيرها، ويمكنك تعطيل أي منها لمستخدم محدد.

# عرض جميع التراخيص المتاحة في المؤسسة وعدد المستخدم منها
Get-MgSubscribedSku | Select-Object SkuPartNumber, @{N="Total";E={$_.PrepaidUnits.Enabled}}, ConsumedUnits, @{N="Available";E={$_.PrepaidUnits.Enabled - $_.ConsumedUnits}} | Format-Table

# عرض التراخيص المعينة لمستخدم محدد
Get-MgUserLicenseDetail -UserId "[email protected]" | Select-Object SkuPartNumber, SkuId | Format-Table

# عرض خطط الخدمة المفعلة والمعطلة لمستخدم
$licenses = Get-MgUserLicenseDetail -UserId "[email protected]"
foreach ($license in $licenses) {
    Write-Host "License: $($license.SkuPartNumber)" -ForegroundColor Cyan
    $license.ServicePlans | Select-Object ServicePlanName, ProvisioningStatus | Format-Table
}

# تعيين ترخيص لمستخدم
Set-MgUserLicense -UserId "[email protected]" -AddLicenses @{SkuId = "SKU-ID-HERE"} -RemoveLicenses @()

# إزالة ترخيص من مستخدم
Set-MgUserLicense -UserId "[email protected]" -AddLicenses @() -RemoveLicenses @("SKU-ID-HERE")

مشكلة: Microsoft 365 Copilot لا يظهر أو لا يعمل

مع انتشار Microsoft 365 Copilot في المؤسسات خلال 2026، أصبحت مشاكل Copilot من أكثر التذاكر الجديدة التي تصل لفرق الدعم. وبصراحة، معظم المشاكل تتعلق بالتراخيص أو قناة التحديث.

  1. مشكلة الترخيص: Copilot يتطلب ترخيصًا منفصلاً (Microsoft 365 Copilot) بالإضافة إلى ترخيص Microsoft 365 الأساسي (Business Basic أو Standard أو Premium أو E3 أو E5). تأكد من تعيين كلا الترخيصين.
  2. قناة التحديث الخاطئة: Copilot يتطلب أن تكون تطبيقات Office على Current Channel أو Monthly Enterprise Channel. إذا كانت المؤسسة تستخدم Semi-Annual Enterprise Channel، فلن يعمل Copilot — وهذه نقطة يغفلها كثيرون.
  3. الترخيص المبني على الجهاز: Copilot لا يعمل مع Device-Based Licensing. يجب أن يكون الترخيص مبنيًا على المستخدم.
  4. تأخر انتشار الترخيص: بعد تعيين ترخيص Copilot جديد، قد يستغرق الأمر من 15 إلى 30 دقيقة. اطلب من المستخدم إغلاق جميع تطبيقات Office وإعادة فتحها بعد الانتظار.
# التحقق من ترخيص Copilot لمستخدم
$userLicenses = Get-MgUserLicenseDetail -UserId "[email protected]"
$copilotLicense = $userLicenses | Where-Object {$_.SkuPartNumber -like "*Copilot*"}
if ($copilotLicense) {
    Write-Host "Copilot license is assigned" -ForegroundColor Green
    $copilotLicense.ServicePlans | Where-Object {$_.ServicePlanName -like "*COPILOT*"} | Select-Object ServicePlanName, ProvisioningStatus | Format-Table
} else {
    Write-Host "Copilot license is NOT assigned" -ForegroundColor Red
}

# التحقق من قناة التحديث على جهاز المستخدم
# على جهاز المستخدم، افتح أي تطبيق Office > ملف > حساب
# أو عبر السجل:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" | Select-Object CDNBaseUrl, UpdateChannel

مراقبة صحة الخدمة والاستجابة للأعطال

استخدام Service Health Dashboard بفعالية

بعد تجربة انقطاع يناير 2026 المؤلمة، أصبح من الضروري — وليس اختياريًا — أن يكون لدى كل فريق دعم فني نظام مراقبة فعّال لصحة خدمات Microsoft 365.

يمكنك الوصول إلى لوحة صحة الخدمة من مركز الإدارة عبر Health > Service health. لكن الأفضل بكثير هو أتمتة المراقبة عبر PowerShell وMicrosoft Graph API:

# الاتصال بـ Microsoft Graph مع أذونات صحة الخدمة
Connect-MgGraph -Scopes "ServiceHealth.Read.All"

# عرض حالة جميع الخدمات
Get-MgServiceAnnouncementHealthOverview | Select-Object Service, Status | Format-Table

# عرض المشاكل النشطة فقط
Get-MgServiceAnnouncementIssue | Where-Object {$_.Status -ne "Resolved"} | Select-Object Service, Title, Status, StartDateTime | Format-Table

# عرض تفاصيل مشكلة محددة
Get-MgServiceAnnouncementIssue -ServiceHealthIssueId "ISSUE-ID" | Select-Object Title, Classification, Status, StartDateTime, LastModifiedDateTime, ImpactDescription

# عرض رسائل مركز الرسائل (التغييرات القادمة)
Get-MgServiceAnnouncementMessage | Select-Object Title, Category, ActionRequiredByDateTime | Sort-Object ActionRequiredByDateTime | Format-Table -AutoSize

إعداد إشعارات تلقائية للأعطال

يمكنك إنشاء سكربت PowerShell يعمل كمهمة مجدولة (Scheduled Task) للتحقق من صحة الخدمة وإرسال إشعارات عند حدوث مشاكل. هذا السكربت وفّر علينا كثيرًا من الوقت في بيئات الإنتاج:

# سكربت مراقبة صحة Microsoft 365 - يعمل كمهمة مجدولة
# Service-Health-Monitor.ps1

# الاتصال باستخدام تطبيق مسجل (App Registration) للأتمتة
$tenantId = "YOUR-TENANT-ID"
$clientId = "YOUR-CLIENT-ID"
$clientSecret = "YOUR-CLIENT-SECRET"

$body = @{
    Grant_Type    = "client_credentials"
    Scope         = "https://graph.microsoft.com/.default"
    Client_Id     = $clientId
    Client_Secret = $clientSecret
}

$token = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -Method POST -Body $body
$headers = @{ Authorization = "Bearer $($token.access_token)" }

# جلب المشاكل النشطة
$issues = Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/admin/serviceAnnouncement/issues?`$filter=status ne 'resolved'" -Headers $headers

if ($issues.value.Count -gt 0) {
    foreach ($issue in $issues.value) {
        $subject = "M365 Alert: $($issue.title)"
        $body = "Service: $($issue.service)`nStatus: $($issue.status)`nImpact: $($issue.impactDescription)"

        # إرسال بريد إلكتروني عبر SMTP أو Teams webhook
        Write-Host $subject
        Write-Host $body
    }
}

إدارة المستخدمين والمجموعات بكفاءة

العمليات اليومية لإدارة المستخدمين

كفني دعم، ستقوم يوميًا بعمليات متكررة: إعادة تعيين كلمات المرور، إلغاء حظر الحسابات، إدارة المجموعات... الخ. إليك الأوامر التي ستستخدمها أكثر من غيرها:

# إعادة تعيين كلمة مرور مستخدم
$password = @{
    Password = "TempP@ssw0rd2026!"
    ForceChangePasswordNextSignIn = $true
}
Update-MgUser -UserId "[email protected]" -PasswordProfile $password

# إلغاء حظر حساب مستخدم
Update-MgUser -UserId "[email protected]" -AccountEnabled:$true

# البحث عن مستخدم بالاسم أو البريد
Get-MgUser -Filter "startsWith(displayName,'Ahmed')" | Select-Object DisplayName, UserPrincipalName, AccountEnabled | Format-Table

# عرض آخر تسجيل دخول لمستخدم
Get-MgUser -UserId "[email protected]" -Property SignInActivity | Select-Object -ExpandProperty SignInActivity

# عرض المجموعات التي ينتمي إليها مستخدم
Get-MgUserMemberOf -UserId "[email protected]" | ForEach-Object {
    $group = Get-MgGroup -GroupId $_.Id -ErrorAction SilentlyContinue
    if ($group) { $group | Select-Object DisplayName, GroupTypes, MailEnabled }
} | Format-Table

إدارة المجموعات في Microsoft 365

فهم أنواع المجموعات في Microsoft 365 أمر ضروري لتقديم دعم فعّال. وبصراحة، هذا من الأشياء التي تُربك كثيرًا من المبتدئين:

  • مجموعات Microsoft 365 (Microsoft 365 Groups): تُنشئ تلقائيًا صندوق بريد مشترك وموقع SharePoint وفريق Teams. هي الخيار الأفضل للتعاون.
  • مجموعات التوزيع (Distribution Groups): لإرسال البريد لمجموعة من الأشخاص فقط. لا توفر أدوات تعاون إضافية.
  • مجموعات الأمان (Security Groups): للتحكم في الوصول للموارد. لا تستقبل البريد إلا إذا فُعّلت لذلك.
  • مجموعات التوزيع الديناميكية (Dynamic Distribution Groups): العضوية تتحدد تلقائيًا بناءً على خصائص المستخدم كالقسم أو المدينة — مفيدة جدًا للمؤسسات الكبيرة.
# إنشاء مجموعة Microsoft 365
New-MgGroup -DisplayName "فريق المشروع" -MailNickname "project-team" -MailEnabled:$true -SecurityEnabled:$false -GroupTypes @("Unified")

# إنشاء مجموعة توزيع
New-DistributionGroup -Name "قسم تقنية المعلومات" -Alias "it-dept" -PrimarySmtpAddress "[email protected]"

# إضافة أعضاء لمجموعة توزيع
Add-DistributionGroupMember -Identity "[email protected]" -Member "[email protected]"

# عرض أعضاء مجموعة
Get-DistributionGroupMember -Identity "[email protected]" | Select-Object DisplayName, PrimarySmtpAddress | Format-Table

استكشاف مشاكل OneDrive وSharePoint

مشكلة: ملفات OneDrive لا تتزامن

مشاكل مزامنة OneDrive من أكثر المشاكل شيوعًا وإحباطًا للمستخدمين والفنيين على حد سواء. وبعد تحديثات يناير 2026، ظهرت مشاكل إضافية مع ملفات PST المخزنة على OneDrive التي كانت تتسبب في تجميد Outlook.

إليك خطوات التشخيص التي أتبعها:

  1. تحقق من حالة المزامنة: انقر على أيقونة OneDrive في شريط المهام وتحقق من الحالة. إذا كانت هناك علامة تحذير، انقر عليها للتفاصيل.
  2. تحقق من مساحة التخزين: ربما تجاوز المستخدم حصته في OneDrive.
  3. أعد ربط الحساب: فك ربط OneDrive ثم أعد ربطه.
  4. أعد تعيين OneDrive: الحل الأخير إذا لم تنجح الخطوات السابقة.
# التحقق من حصة تخزين OneDrive لمستخدم عبر SharePoint Online PowerShell
# أولاً: تثبيت الوحدة
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force

# الاتصال
Connect-SPOService -Url "https://yourdomain-admin.sharepoint.com"

# التحقق من حصة المستخدم
Get-SPOSite -Identity "https://yourdomain-my.sharepoint.com/personal/user_yourdomain_com" | Select-Object Owner, StorageQuota, StorageUsageCurrent

# زيادة حصة التخزين لمستخدم
Set-SPOSite -Identity "https://yourdomain-my.sharepoint.com/personal/user_yourdomain_com" -StorageQuota 5242880

# إعادة تعيين OneDrive على جهاز المستخدم (Windows)
# نفذ هذا الأمر في مربع التشغيل (Win+R):
# %localappdata%\Microsoft\OneDrive\onedrive.exe /reset

# إذا لم يعد OneDrive للظهور بعد دقيقتين:
# %localappdata%\Microsoft\OneDrive\onedrive.exe

مشكلة: أذونات SharePoint غير صحيحة

مشاكل الأذونات في SharePoint من أكثر المشاكل تعقيدًا بسبب نظام الأذونات متعدد الطبقات. لكن لا تقلق، إليك كيفية التعامل معها:

# عرض مسؤولي مجموعة موقع SharePoint
Get-SPOSiteGroup -Site "https://yourdomain.sharepoint.com/sites/project" | Select-Object Title, Roles, Users | Format-Table -Wrap

# إضافة مستخدم إلى مجموعة SharePoint
Add-SPOUser -Site "https://yourdomain.sharepoint.com/sites/project" -LoginName "[email protected]" -Group "Project Members"

# التحقق من إعدادات المشاركة الخارجية
Get-SPOTenant | Select-Object SharingCapability, DefaultSharingLinkType, PreventExternalUsersFromResharing

# تحديث إعدادات المشاركة لموقع محدد
Set-SPOSite -Identity "https://yourdomain.sharepoint.com/sites/project" -SharingCapability ExternalUserSharingOnly

أفضل الممارسات لفريق الدعم الفني في إدارة Microsoft 365

1. بناء قاعدة معرفية داخلية

كل مشكلة تحلها هي فرصة ذهبية لتوثيق الحل. وثق بانتظام، وسيشكرك فريقك لاحقًا. أنشئ قاعدة معرفية تتضمن:

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

2. أتمتة المهام المتكررة

قاعدة بسيطة: إذا كنت تقوم بنفس المهمة أكثر من ثلاث مرات في الأسبوع، فقد حان وقت أتمتتها. إليك سكربتات عملية ستوفر عليك وقتًا كبيرًا:

# سكربت: تقرير يومي عن التراخيص المتاحة
# Daily-License-Report.ps1
Connect-MgGraph -Scopes "Organization.Read.All"

$report = Get-MgSubscribedSku | Select-Object @{N="License";E={$_.SkuPartNumber}},
    @{N="Total";E={$_.PrepaidUnits.Enabled}},
    ConsumedUnits,
    @{N="Available";E={$_.PrepaidUnits.Enabled - $_.ConsumedUnits}},
    @{N="UsagePercent";E={[math]::Round(($_.ConsumedUnits / $_.PrepaidUnits.Enabled) * 100, 1)}}

$report | Format-Table -AutoSize

# تنبيه عند اقتراب نفاد التراخيص
$lowLicenses = $report | Where-Object {$_.Available -lt 5 -and $_.Available -ge 0}
if ($lowLicenses) {
    Write-Host "WARNING: Low license count detected!" -ForegroundColor Red
    $lowLicenses | Format-Table
}
# سكربت: تقرير أسبوعي عن المستخدمين غير النشطين
# Inactive-Users-Report.ps1
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"

$inactiveDate = (Get-Date).AddDays(-90)

$users = Get-MgUser -All -Property DisplayName, UserPrincipalName, SignInActivity, AccountEnabled |
    Where-Object {
        $_.AccountEnabled -eq $true -and
        $_.SignInActivity.LastSignInDateTime -lt $inactiveDate
    } |
    Select-Object DisplayName, UserPrincipalName,
        @{N="LastSignIn";E={$_.SignInActivity.LastSignInDateTime}},
        @{N="DaysInactive";E={(New-TimeSpan -Start $_.SignInActivity.LastSignInDateTime -End (Get-Date)).Days}}

$users | Sort-Object DaysInactive -Descending | Format-Table -AutoSize
Write-Host "Total inactive users (90+ days): $($users.Count)" -ForegroundColor Yellow

3. إعداد خطة استجابة للأعطال

بناءً على دروس انقطاع يناير 2026 (وكانت دروسًا قاسية بصراحة)، يجب أن يكون لدى كل فريق دعم فني خطة استجابة واضحة ومكتوبة:

  • المرحلة 1 — الاكتشاف (أول 5 دقائق): تحقق من Service Health Dashboard. تحقق من حسابات Microsoft الرسمية على وسائل التواصل. حدد نطاق التأثير — أي خدمات متأثرة وكم مستخدم.
  • المرحلة 2 — التواصل (أول 15 دقيقة): أرسل إشعارًا للمستخدمين يوضح المشكلة. استخدم قنوات بديلة إذا كانت Teams متأثرة (بريد إلكتروني أو رسائل نصية). حدّث صفحة حالة الخدمة الداخلية.
  • المرحلة 3 — التخفيف: وجّه المستخدمين لاستخدام بدائل مؤقتة (مثل Outlook Web Access). فعّل خطط الطوارئ.
  • المرحلة 4 — التعافي: راقب عودة الخدمة تدريجيًا. تحقق أن كل شيء عاد للعمل. أجرِ مراجعة ما بعد الحادث (Post-Incident Review) — هذه الخطوة مهمة جدًا ولا تتخطاها.

4. التدريب المستمر للمستخدمين النهائيين

أقولها من تجربة: الكثير من تذاكر الدعم الفني يمكن تجنبها تمامًا بتدريب بسيط للمستخدمين. ركّز على هذه المحاور:

  • إدارة كلمات المرور: علّم المستخدمين استخدام Microsoft Authenticator للمصادقة متعددة العوامل (MFA) بدلاً من الاعتماد على كلمات المرور فقط.
  • أساسيات OneDrive: كيفية حفظ الملفات والمشاركة وحل مشاكل المزامنة البسيطة.
  • استخدام Teams بفعالية: إنشاء اجتماعات ومشاركة الشاشة واستخدام القنوات بالشكل الصحيح.
  • التعرف على رسائل التصيد الاحتيالي: خاصة مع تزايد هجمات التصيد التي تستهدف مستخدمي Microsoft 365 بشكل ملحوظ.
  • استخدام Copilot: مع انتشاره في 2026، من المهم تدريب المستخدمين على الاستفادة منه بشكل فعّال وآمن.

الأمان في Microsoft 365 — ما يجب أن يعرفه كل فني دعم

المصادقة متعددة العوامل (MFA)

في 2026، لم يعد تفعيل MFA خيارًا — إنه ضرورة مطلقة. Microsoft نفسها بدأت بفرض MFA على جميع حسابات المسؤولين. إليك كيفية إدارته:

# التحقق من حالة MFA للمستخدمين عبر Microsoft Graph
Connect-MgGraph -Scopes "UserAuthenticationMethod.Read.All"

# عرض طرق المصادقة المسجلة لمستخدم
Get-MgUserAuthenticationMethod -UserId "[email protected]" | Select-Object Id, @{N="Type";E={$_.AdditionalProperties.'@odata.type'}}

# عرض المستخدمين الذين لم يسجلوا MFA
$allUsers = Get-MgUser -All -Property UserPrincipalName, DisplayName, AccountEnabled | Where-Object {$_.AccountEnabled}
foreach ($user in $allUsers) {
    $methods = Get-MgUserAuthenticationMethod -UserId $user.Id
    if ($methods.Count -le 1) {
        Write-Host "$($user.DisplayName) - $($user.UserPrincipalName) - No MFA registered" -ForegroundColor Red
    }
}

مراجعة سجلات تسجيل الدخول

سجلات تسجيل الدخول هي خط دفاعك الأول لاكتشاف الأنشطة المشبوهة. لا تُهملها أبدًا:

# عرض محاولات تسجيل الدخول الفاشلة خلال آخر 24 ساعة
Connect-MgGraph -Scopes "AuditLog.Read.All"

$startDate = (Get-Date).AddHours(-24).ToString("yyyy-MM-ddTHH:mm:ssZ")
$signIns = Get-MgAuditLogSignIn -Filter "status/errorCode ne 0 and createdDateTime ge $startDate" -Top 50

$signIns | Select-Object UserDisplayName, UserPrincipalName,
    @{N="Error";E={$_.Status.ErrorCode}},
    @{N="FailureReason";E={$_.Status.FailureReason}},
    IPAddress,
    @{N="Location";E={"$($_.Location.City), $($_.Location.CountryOrRegion)"}},
    CreatedDateTime | Format-Table -AutoSize

# البحث عن تسجيلات دخول مشبوهة من مواقع غير معتادة
$riskySignIns = Get-MgAuditLogSignIn -Filter "riskLevelDuringSignIn eq 'high' and createdDateTime ge $startDate"
if ($riskySignIns) {
    Write-Host "HIGH RISK SIGN-INS DETECTED!" -ForegroundColor Red
    $riskySignIns | Select-Object UserDisplayName, IPAddress, @{N="Location";E={"$($_.Location.City), $($_.Location.CountryOrRegion)"}}, RiskLevelDuringSignIn | Format-Table
}

نصائح متقدمة وأخطاء شائعة يجب تجنبها

أخطاء شائعة عند إدارة Microsoft 365

خلال عملي في دعم Microsoft 365، رأيت هذه الأخطاء تتكرر مرارًا وتكرارًا:

  • عدم الاحتفاظ بنسخ احتياطية: Microsoft 365 لا يوفر نسخًا احتياطيًا شاملاً بشكل افتراضي. إذا حذف مستخدم بريدًا أو ملفًا بعد فترة الاحتفاظ، فقد يُفقد نهائيًا. استخدم حلول نسخ احتياطي من طرف ثالث — لا تعتمد على Microsoft وحدها هنا.
  • عدم مراقبة انتهاء الاشتراكات: إذا انتهت صلاحية الاشتراك دون تجديد، قد يفقد المستخدمون الوصول لبياناتهم. راقب تواريخ التجديد من مركز الإدارة.
  • استخدام حساب مسؤول عام واحد: لا تعتمد على حساب واحد. أنشئ حسابات مسؤولين متعددة مع صلاحيات محددة (Exchange Admin, Teams Admin... إلخ).
  • تجاهل التنبيهات الأمنية: Microsoft Defender يرسل تنبيهات عن أنشطة مشبوهة — لا تتجاهلها. قد تكون مؤشرًا على اختراق حقيقي.
  • عدم توثيق التغييرات: كل تغيير تقوم به في البيئة يجب توثيقه. استخدم سجل التدقيق (Audit Log) المدمج بالإضافة إلى توثيقك الخاص.

أدوات خارجية مفيدة

بالإضافة إلى الأدوات المدمجة، هناك أدوات خارجية ستسهّل عملك كثيرًا:

  • Microsoft 365 DSC (Desired State Configuration): أداة مفتوحة المصدر لتوثيق وتكرار إعدادات Microsoft 365. مفيدة جدًا إذا كان لديك عدة مستأجرين (tenants).
  • Microsoft Graph Explorer: أداة ويب تفاعلية لاختبار استعلامات Microsoft Graph API. ممتازة لتعلم واختبار الأوامر قبل استخدامها في السكربتات. متوفرة على developer.microsoft.com/graph/graph-explorer.
  • مواقع المراقبة: مواقع مثل DownDetector تعطيك صورة سريعة عن حالة خدمات Microsoft 365 من منظور المستخدمين — مفيدة عندما تشك أن المشكلة ليست عندك فقط.

الخلاصة: بناء خبرة Microsoft 365 المتينة

إدارة Microsoft 365 واستكشاف أخطائها ليست مهارة تُكتسب بين ليلة وضحاها — لكنها تستحق كل الجهد المبذول. مع الأدوات والتقنيات التي غطيناها في هذا الدليل، من PowerShell إلى SaRA ومن تتبع البريد إلى مراقبة صحة الخدمة، أصبح لديك أساس متين للتعامل مع معظم ما ستواجهه يوميًا.

تذكر هذه النقاط الجوهرية:

  • ابدأ دائمًا بالتحقق من صحة الخدمة قبل تشخيص مشاكل فردية — درس يناير 2026 علّمنا أن المشكلة قد تكون من جانب Microsoft وليس من عندنا.
  • تعلّم PowerShell واستثمر فيه — أتمتة المهام المتكررة ستوفر عليك ساعات كل أسبوع.
  • وثّق كل شيء — كل مشكلة تحلها وكل تغيير تجريه. قاعدة المعرفة الداخلية هي أثمن ما يملكه فريق الدعم الفني.
  • ابقَ مُحدّثًا — Microsoft 365 يتغير باستمرار. تابع مركز الرسائل واقرأ المدونات الرسمية وانضم لمجتمعات المسؤولين.
  • لا تنسَ الأمان — فعّل MFA للجميع، راقب سجلات تسجيل الدخول، وتعامل مع كل تنبيه أمني بجدية.

في النهاية، هدفك كفني دعم ليس فقط حل المشاكل عند حدوثها، بل منعها قبل وقوعها. المراقبة الاستباقية والأتمتة والتدريب المستمر — هذه هي المفاتيح الثلاثة. وكلما أتقنت أدوات Microsoft 365 وتعمقت في فهمها، أصبحت أكثر قدرة على تقديم دعم فني يُحدث فرقًا حقيقيًا في مؤسستك.

عن الكاتب Editorial Team

Our team of expert writers and editors.