سؤال

أنا نسخ ملف من مجلد إلى مجلد ب ثم محاولة نسخ ملف الأذونات.وفيما يلي الخطوات الأساسية أنا باستخدام:

  1. CopyFile(المصدر والهدف)
  2. GetNamedSecurityInfo(المصدر ، GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  3. طباعة مصدر SD باستخدام ConvertSecurityDescriptorToStringsecuritydescriptor
  4. SetNamedSecurityInfo(الهدف ، GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  5. GetNamedSecurityInfo(الهدف ، GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
  6. طباعة الهدف SD باستخدام ConvertSecurityDescriptorToStringsecuritydescriptor

في #3 أحصل على هذا SD:

G:S-1-5-21-1454471165-1482476501-839522115-513D:AI(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;PU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;FA;;;S-1-5-21-1454471165-1482476501-839522115-1004)

في #6 أحصل على

G:S-1-5-21-1454471165-1482476501-839522115-513D:AI(A;ID;0x1301bf;;;PU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)

الدعوة إلى SetNamedSecurityInfo يعود ERROR_SUCCESS ، ولكن النتائج هي المصدر والهدف الملف لا تملك نفس SDs.لماذا هذا ؟ ماذا أفعل الخطأ هنا ؟

هل كانت مفيدة؟

المحلول

SHFileOperation يمكن نسخ الملفات جنبا إلى جنب مع سمات الأمان ، ولكن من سؤالك الآخر أرى أنك قلقة من أن هذا لن يعمل ضمن الخدمة.ربما مجموعة الأخبار التالية المناقشات سوف توفر بعض المعلومات المفيدة لك:

نصائح أخرى

كيكر من أدوات ملقم طقم http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
سيتم نسخ جميع NTFS settigs و ACLs ، كما أنها أكثر قوة و موثوقية من نسخ/xcopy

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top