คัดลอกการอนุญาตไฟล์จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่ง


17

ในช่วงสุดสัปดาห์ฉันคัดลอกข้อมูล บริษัท ของเราจากฮาร์ดไดรฟ์หนึ่งไปยังอีกอันที่ใหญ่กว่า ฉันคิดว่าการอนุญาตจะคัดลอกข้ามไป แต่พวกเขาไม่

อะไรคือวิธีที่ดีที่สุด (และเร็วที่สุด) ในการคัดลอกการอนุญาตที่ตั้งไว้บนข้อมูลใหม่ของฉันโดยไม่ต้องคัดลอกข้อมูลทั้งหมดอีกครั้ง ผู้ใช้ของฉันกำลังเข้าถึงข้อมูลอยู่ดังนั้นไม่ต้องการคัดลอกข้อมูลใหม่เนื่องจากการเปลี่ยนแปลงอาจสูญหาย

ข้อมูลถูกโฮสต์บน windows server 2008 R2

คำตอบ:


17

ฉันคิดว่านี่จะทำงาน:

robocopy source destination /E /COPY:SOU /xo /xn /xc /xx /LOG+:F:\Sec.log.

" เหรียญทอง " สำเนา: S = การรักษาความปลอดภัยข้อมูล (NTFS ACL), O = ข้อมูลเจ้าของU = ข้อมูลการตรวจสอบ

หากวิธีนี้ใช้ไม่ได้คุณสามารถใช้คำสั่งนี้เพื่อสำรองสิทธิ์ NTFS:

icacls d:\data /save ntfspermissions.txt /t /c

/ Tสวิตช์ช่วยให้สามารถที่จะได้รับสิทธิ์ในโฟลเดอร์ย่อยเกินไป / Cสวิทช์ช่วยให้มันดำเนินต่อไปแม้ข้อผิดพลาดที่พบ (แม้ว่าข้อผิดพลาดจะยังคงแสดง)

จากนั้นใช้คำสั่งนี้เพื่อคืนค่าการอนุญาต:

icacls d:\ /restore ntfsperms.txt

โปรดทราบว่าในคำสั่งเพื่อบันทึกการอนุญาตฉันระบุโฟลเดอร์เป้าหมายD:\Dataแต่เมื่อฉันกู้คืนพวกเขาฉันก็ระบุD:\ว่าเป็นเป้าหมาย คุณอาจคิดว่าการระบุD:\ว่าเป็นเป้าหมายในคำสั่งกู้คืนอาจทำให้สิทธิ์ในโฟลเดอร์อื่น ๆ ในระดับนั้นแย่ลง แต่อย่างที่คุณเห็นได้จากไฟล์เอาต์พุต ntfspermissions.txt มันมีข้อมูลเกี่ยวกับโฟลเดอร์ Data และโฟลเดอร์ย่อยเท่านั้น มันคือทั้งหมดที่จะเปลี่ยน


1
ฉันคิดว่า icacls เป็นคำตอบที่นี่ +1
MDMarra

ตกลง เนื่องจากเขาไม่สามารถจัดเรียงข้อมูลใหม่เนื่องจากข้อมูลมีการใช้งานแล้วและมีแนวโน้มที่จะเปลี่ยนแปลง icacls เพื่อส่งออก / นำเข้าการอนุญาตดูเหมือนจะเป็นวิธีที่ดีที่สุด
Rex

ขอบคุณสำหรับความช่วยเหลือทั้งหมดของคุณฉันกำลังส่งออก icacls ขณะที่ฉันพิมพ์และจะพยายามนำเข้าในภายหลัง ครั้งต่อไปฉันจะจำไว้เสมอเพื่อตรวจสอบสิทธิ์ของฉัน
Simon Foster

3

ใช้ PowerShell:

Get-Acl 'source path' | Set-Acl 'destination path'

1
ฉันกำลังมองหาคนไร้ศีลธรรมเหมือนกัน สำหรับฉันดูเหมือนว่านี่เป็นคำตอบที่แท้จริง คนอื่นบอกสิ่งที่ต้องทำก่อนทำสำเนาไม่ใช่หลังจากที่ถูกถาม
อัลวาร์

0

คุณสามารถลองใช้Robocopy AFAIK ยังคงใช้ได้กับ Windows รุ่นใหม่กว่า


คุณรู้ไวยากรณ์ที่ฉันต้องการหรือไม่ ฉันลอง robocopy ปลายทางปลายทาง / secfix / xo / xn / xc จากหน้าเว็บด้านบนแล้วมันเกิดข้อผิดพลาดเกี่ยวกับการไม่ทราบว่าสิทธิ์ในการคัดลอกใด
Simon Foster

1
นั่นเป็นเพราะ robocopy จะทำงานได้ก็ต่อเมื่อเนื้อหาของการแบ่งปันไม่เปลี่ยนแปลง ดูเหมือนว่าผู้ใช้ของคุณอาจเปลี่ยนไปใช่ไหม ฉันไม่คิดว่า robocopy เป็นเครื่องมือที่ใช้ตอนนี้ (คุณควรจะใช้มันในตอนแรก)
MDMarra

คำแนะนำนั้นมีไว้สำหรับ robocopy รุ่นแรก ๆ ตอนนี้คุณใช้เวอร์ชั่นอะไร คุณอาจจะสามารถลบ a / copy: s ตอนนี้เพื่อเปลี่ยน NTFS ACLs เท่านั้น แต่ฉันไม่แน่ใจ ... ฉันจะเริ่มทดสอบอีกสักครู่แล้ว
HopelessN00b

0

อย่างที่ Priaeas พูดไว้ robocopy

คู่มืออ้างอิงที่มีประโยชน์สำหรับสวิทช์กับการใช้งาน

/ copyall หรือ / copy: DATSOU จะคัดลอก "ทุกอย่าง" (ข้อมูลคุณลักษณะเวลาประทับ ACLs NTFS เจ้าของและข้อมูลการตรวจสอบ)

/ COPY: copyflag [s]: คัดลอกอะไร (ค่าเริ่มต้นคือ / COPY: DAT) (copyflags: D = ข้อมูล, A = คุณสมบัติ, T = Timestamps S = ความปลอดภัย = ACLs NTFS, O = ข้อมูลเจ้าของ, U = ข้อมูลที่ใช้) .


1
เขาบอกว่าเขาไม่ต้องการคัดลอกข้อมูลโดยเฉพาะ นอกจากนี้ robocopy จะคัดลอกความปลอดภัยหากไฟล์ไม่ได้รับการแก้ไข เนื่องจากส่วนแบ่งในการผลิตในขณะนี้ฉันบอกว่ามันเป็นเดิมพันที่ปลอดภัยที่มีการเปลี่ยนแปลง
MDMarra

0
xcopy e:\*.* z: /T /E /I /H /K /X /Y

e:เป็นรากของไดรฟ์ทางกายภาพที่มีการแชร์หลายครั้งและบล็อกมรดกทุกชนิดมีจุด z:เป็นไดรฟ์ "ใหม่" ในกรณีนี้ไดรฟ์ที่แมป

มันใช้งานได้ไม่ใช่เพื่อการแชร์ แต่ให้อนุญาต


-4

โปรแกรม CopyMik ฟรีแวร์กับคีย์:

/ CSF [FileMask1 [FileMask2 [.... ]]]] คัดลอกคุณลักษณะความปลอดภัยของไฟล์ เฉพาะไฟล์ที่มีมาสก์ที่ระบุ (หน้ากากเริ่มต้น *)

/ CSD [DirMask1 [DirMask2 [.... ]]]] คัดลอกคุณลักษณะความปลอดภัยของโฟลเดอร์ เฉพาะโฟลเดอร์ที่มีรูปแบบที่ระบุ (หน้ากากเริ่มต้น *)

http://www.superbasis.de/copymik/index.htm

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.