روابط سريعة
يمكن أن يمثل الحفاظ على أذونات مشاركة الملفات عبر الخوادم تحديًا كبيرًا، ولكن باستخدام PowerShell، يمكننا أتمتة هذه العملية مما يسمح لك بالعودة إلى المنزل مبكرًا.
عند القيام بأي عملية ترحيل للملفات، لا يتعين عليك فقط مراعاة الملفات والمجلدات نفسها، ولكن أيضًا الأذونات المحددة لهذه الكائنات. من المحتمل أن يكون هناك مجموعة مختلفة من إدخالات التحكم في الوصول (ACEs) في كل ملف ومجلد والتي تشكل قائمة التحكم في الوصول (ACL). اعتمادًا على عدد الملفات التي تقوم بترحيلها، قد يكون هذا عددًا كبيرًا.
عند نقل الملفات إلى موقع جديد، لا تأتي الأذونات معها دائمًا. عند إجراء عملية ترحيل ضخمة مثل خوادم الملفات بأكملها ذات الأذونات المعقدة، فمن المهم الاحتفاظ بهذه الأذونات مع الكائنات أثناء انتقالها إلى الموقع الجديد.
هناك عدة طرق للقيام بذلك.
إحدى الأدوات المفضلة لإجراء عمليات ترحيل الملفات هي robocopy. تعد Robocopy أداة رائعة تحتوي على الكثير من الميزات والميزات، ولكنها قد تكون معقدة في الاستخدام وقد لا تعمل في جميع المواقف. عندما يحدث هذا، سأبحث عادة في أداة تسمى com.icacls. هذه أداة موجودة منذ فترة طويلة، ومثلها مثل robocopy، بها الكثير من المفاتيح، لذا دعونا نبسط هذه الأداة قليلًا باستخدام بعض PowerShell.
استخدام PowerShell لنقل الأذونات
على الرغم من أنه يمكنك استخدام الأداة المساعدة لسطر الأوامر icacls مباشرةً، إلا أنها ليست الأسهل في الفهم. لعلاج هذه المشكلة، ستتعرف على PowerShell كمجمّع لاستدعاء أداة icacls لتبسيط هذه العملية الشاقة أحيانًا.
أولاً، سنحتاج إلى تنزيل أداة موجودة تم إنشاؤها لنا بالفعل. أحد الأشياء الرائعة في مجتمع PowerShell هو أنه توجد عادةً أداة موجودة لمساعدتنا. في هذه الحالة، سنحتاج إلى وحدة PowerShell. يمكن العثور على وحدة PowerShell هذه في معرض بوويرشيل.
إذا كان لديك PowerShell v4 أو إصدار أحدث، فستكون لديك بالفعل بعض الأوامر للحصول على هذه الوحدة بسرعة.
PS> Find-Module -Name NTFSPermissionMigration | Install-Module
بمجرد الانتهاء من التعليمات البرمجية أعلاه، يجب أن يكون لديك الآن وحدة نمطية جديدة مثبتة على جهاز الكمبيوتر الخاص بك متاحة للاستخدام. بمجرد الانتهاء من هذا التثبيت، نحتاج الآن إلى تشغيل أمر داخل الوحدة مقابل المجلد الذي يحتوي على كافة الملفات التي نرغب في نقل الأذونات إليها.
PS> Save-Acl -FolderPath \\OLDSERVER\FileShare -SaveFilePath C:\FilePermissions.txt
بمجرد تشغيل هذا، يجب أن ترى مخرجات مشابهة لهذا وتبدأ في رؤية أن ملف الحفظ يبدأ في النمو.
processed file: \\OLDSERVER\FileShare\File1.txt
processed file: \\OLDSERVER\FileShare\File2.exe
Successfully processed X files; Failed processing 0 files
عند اكتمال ذلك، يجب أن يكون لديك الآن جميع الأذونات الخاصة بالملفات والمجلدات الموجودة داخل ملف الحفظ. والآن يمكننا استعادة هذا الملف. قبل أن يحدث ذلك، تأكد من عمل نسخة طبق الأصل من جميع الملفات الموجودة داخل المجلد القديم، وإلا فلن ينجح هذا.
لاستعادة الأذونات إلى مسار المجلد الجديد، سنستخدم الآن ملف Restore-Acl
يأمر.
PS> Restore-Acl -RestoreToFolderPath \\NEWFILESERVER\FileShare -PermissionFilePath C:\FilePermissions.txt
Successfully processed XXX files; Failed processing 0 files
بمجرد اكتمال ذلك، يجب أن تنعكس جميع أذونات NTFS من المجلد المصدر والمجلد الوجهة الجديد!
ملخص
يمكن أن يؤدي استخدام وحدة PowerShell المجتمعية المجانية والقليل من سحر البرمجة النصية إلى تحويل مهمة شاقة تتمثل في نقل أذونات NTFS من خادم إلى آخر بسهولة.
(العلامات للترجمة)مايكروسوفت