دليل تدوير المفاتيح ووضع العلامات
دليل تدوير المفاتيح ووضع العلامات
استراتيجيات لتطبيق علامات DKE عندما لا يكون وضع العلامات التلقائي متاحاً
تحدي وضع علامات DKE
هذا يعني أنه يجب وضع علامات على الملفات يدوياً أو عبر طرق بديلة قبل الترحيل، لضمان عدم تمكّن Microsoft 365 من قراءة المحتويات.
الحلول المحتملة
وضع العلامات يدوياً
عبر عميل علامات Purview
AIP Scanner
وضع العلامات المؤتمت داخل المؤسسة
PowerShell
وضع علامات على الملفات عبر البرامج النصية
1. وضع العلامات يدوياً
يتضمّن تحديد ملفات أو مجلدات فردية في مستكشف الملفات وتطبيق العلامة المناسبة.
العيب: تسجيل محدود في حالة الأخطاء، ويجب فحص الملفات واحداً تلو الآخر — أمر يستغرق وقتاً طويلاً جداً وغير مناسب لعمليات الترحيل الكبيرة.
2. AIP Scanner
أداة مثبَّتة داخل المؤسسة لتطبيق العلامات تلقائياً على الملفات الموجودة في مشاركات الملفات أو SharePoint داخل المؤسسة، بناءً على سياسات محددة.
المزايا
رائع للبيئات الأكبر أو حيث يلزم توسيع نطاق وضع العلامات ليشمل الإعدادات داخل المؤسسة.
العيب
بالنسبة للأقراص المحلية الصغيرة، قد يكون عبء التنفيذ مرتفعاً جداً.
3. وضع العلامات القائم على PowerShell
نظراً لقيود الطرق المذكورة أعلاه، يمكن استخدام PowerShell لوضع العلامات على الملفات برمجياً.
المتطلبات المسبقة
- عميل مثبَّت عليه PowerShell وعميل علامات Purview
- تسجيل تطبيق في Entra ID (المعروف سابقاً باسم Azure Active Directory)
- لا يمكن وضع علامات على ملفات MSG (رسائل Outlook) عبر PowerShell
- لا يمكن أيضاً وضع علامات على ملفات PDF المحمية بكلمة مرور أو الموقّعة بشهادة (وهو قيد في نظام العلامات نفسه)
تحدي PowerShell
قد يؤدي استخدام أوامر PowerShell القياسية وفقاً لوثائق Microsoft إلى تجمّد PowerShell أو تشغيله إلى ما لا نهاية.
أثبت الاختبار أن ما سبق ليس كافياً وأن هناك حاجة إلى عمل إضافي لوضع علامات على الملفات بشكل موثوق باستخدام آلية إعادة المحاولة والمعالجة القائمة على المهام.
برنامج PowerShell النصي الموثوق لوضع العلامات
يوفّر البرنامج النصي التالي حلاً قوياً مع منطق إعادة المحاولة والتنفيذ القائم على المهام:
Get-ChildItem -Path \\Finance\Projects\ -Recurse -File | ForEach-Object {
try {
$maxRetries = 3
$retryCount = 0
$setSuccess = $false
while (-not $setSuccess -and $retryCount -lt $maxRetries) {
$retryCount++
$jobsetlabel = Start-Job -ScriptBlock {
param ($fileName, $DKELabelId)
Set-FileLabel -FileName $fileName -LabelId $DKELabelId
[GC]::Collect()
[GC]::WaitForPendingFinalizers()
return $true
} -ArgumentList $_.FullName, "d9f23ae3-4321-4321-4321-f515f824c57b"
$finishedsetlabel = $jobsetlabel | Wait-Job -Timeout 10 | Receive-Job
if ($finishedsetlabel) {
$setSuccess = $true
Write-Host "Label set successfully for $($_.FullName) on attempt $retryCount." -ForegroundColor Green
}
}
}
catch {
Write-Host "Failed to set label after $maxRetries attempts for $($_.FullName)." -ForegroundColor Red
}
}
ميزات البرنامج النصي
| الميزة | الوصف |
|---|---|
| آلية إعادة المحاولة | تحاول حتى 3 مرات لكل ملف |
| التنفيذ القائم على المهام | يتم وضع علامة على كل ملف في مهمة منفصلة لتجنب مشكلات الموارد |
| تنظيف الذاكرة | يستخدم [GC]::Collect() و WaitForPendingFinalizers() بعد كل مهمة |
| التحكم في المهلة | يمنع التعليق باستخدام Wait-Job -Timeout 10 |
باستخدام هذا النهج، يمكنك وضع علامات بنجاح على جميع الملفات ذات الصلة دون تجمّد PowerShell أو تشغيله إلى ما لا نهاية.
برنامج التدقيق النصي قبل الترحيل
لضمان وضع العلامات على جميع الملفات بشكل صحيح قبل الترحيل، اكتب برنامجاً نصياً يقرأ علامة كل ملف ويسجّل النتائج في ملف CSV. يتيح هذا المراجعة اليدوية والتعديلات عند الحاجة.