إنتقل إلى المحتوى الرئيسي

دليل تدوير المفاتيح ووضع العلامات

ينطبق على:
ترحيل الملفاتوضع العلامات عبر PowerShellAIP ScannerSharePoint

تحدي وضع علامات DKE​

تحذير
لا يعمل وضع العلامات التلقائي في SharePoint مع العلامات المحمية بـ DKE.

هذا يعني أنه يجب وضع علامات على الملفات يدوياً أو عبر طرق بديلة قبل الترحيل، لضمان عدم تمكّن Microsoft 365 من قراءة المحتويات.

الحلول المحتملة​

1

وضع العلامات يدوياً

عبر عميل علامات Purview

2

AIP Scanner

وضع العلامات المؤتمت داخل المؤسسة

3

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. يتيح هذا المراجعة اليدوية والتعديلات عند الحاجة.