Salin izin file dari satu direktori ke direktori lain

17

Selama akhir pekan saya menyalin data perusahaan kami dari satu hard drive ke yang lebih besar. Saya pikir izin akan disalin tetapi tidak.

Apa cara terbaik (dan tercepat) untuk menyalin izin yang semula ditetapkan ke data baru saya, tanpa harus menyalin semua data lagi? Pengguna saya sekarang mengakses data sehingga tidak ingin menyalin kembali data karena perubahan mungkin hilang.

Data di-host di windows server 2008 R2

Simon Foster
sumber

Jawaban:

17

Saya pikir ini akan berhasil:

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

" SOU " salinan: S = Keamanan info (NTFS ACL), O = Info Kepemilikan, U = Info audit

Jika ini tidak berhasil, Anda dapat menggunakan perintah ini untuk membuat cadangan izin NTFS:

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

The / T switch memungkinkan untuk mendapatkan hak akses subfolder juga. The / C switch memungkinkan untuk terus bahkan jika kesalahan yang ditemui (walaupun kesalahan masih akan ditampilkan).

Dan kemudian gunakan perintah ini untuk mengembalikan izin:

icacls d:\ /restore ntfsperms.txt

Perhatikan bahwa dalam perintah untuk menyimpan izin, saya menentukan folder target D:\Data, tetapi ketika saya mengembalikannya, saya menetapkan D:\sebagai target. Anda mungkin berpikir menentukan D:\sebagai target dalam perintah restore mungkin entah bagaimana mengacaukan izin pada folder lain di tingkat itu, tetapi seperti yang Anda lihat dari file output ntfspermissions.txt, itu hanya memiliki informasi tentang folder Data dan subfolder, sehingga hanya itu yang akan berubah.

Kalatzis Stefanos
sumber
1
Saya pikir icacls adalah jawabannya di sini. +1
MDMarra
sepakat. karena dia tidak dapat menyalin kembali data karena data sudah digunakan dan kemungkinan berubah, icacl untuk mengekspor / mengimpor izin tampaknya menjadi cara terbaik untuk pergi.
Rex
Terima kasih atas semua bantuan Anda, saya mengekspor icacls saat saya mengetik dan akan mencoba mengimpor nanti. Lain kali saya akan ingat untuk selalu memeriksa izin saya
Simon Foster
3

Menggunakan PowerShell:

Get-Acl 'source path' | Set-Acl 'destination path'
Torvin
sumber
1
Saya mencari moreless yang sama. Menurut saya ini adalah jawaban yang nyata. Yang lain mengatakan apa yang harus dilakukan sebelum salinan, bukan setelah seperti yang diminta
alvaroc
0

Anda dapat mencoba menggunakan Robocopy . AFAIK masih berfungsi pada versi Windows yang lebih baru.

pritaea
sumber
Apakah Anda tahu sintaks yang saya butuhkan? Saya mencoba robocopy source destination / secfix / xo / xn / xc dari halaman di atas dan ini melempar kesalahan tentang tidak mengetahui izin mana yang akan disalin
Simon Foster
1
Itu karena robocopy hanya akan berfungsi jika konten pembagiannya tidak berubah. Sepertinya pengguna Anda mungkin mengubahnya, bukan? Saya tidak berpikir bahwa robocopy adalah alat untuk digunakan sekarang (Anda seharusnya sudah menggunakannya di awal)
MDMarra
Panduan itu untuk robocopy versi awal. Versi apa yang Anda gunakan sekarang? Anda mungkin dapat pergi dengan / copy: sekarang hanya untuk mengubah ACFS NTFS, tapi saya tidak yakin ... Saya akan memulai sedikit tes sekarang.
HopelessN00b
0

Seperti Kata Priaeas, robocopy.

Panduan referensi praktis untuk sakelar yang akan digunakan .

/ copyall atau / copy: DATSOU akan menyalin "segalanya" (data, atribut, cap waktu, NTFS ACL, pemilik dan info audit).

/ SALIN: copyflag [s]: Apa yang harus SALINAN (standarnya adalah / SALIN: DAT) (copyflag: D = Data, A = Atribut, T = Cap Waktu S = Keamanan = NTFS ACL, O = Info pemilik, U = info penyuntingan) .

HopelessN00b
sumber
1
Dia secara khusus mengatakan bahwa dia tidak ingin menyalin data. Selain itu, robocopy hanya akan menyalin keamanan jika file belum dimodifikasi. Karena bagian ini dalam produksi sekarang, saya akan mengatakan itu taruhan yang aman bahwa itu berubah.
MDMarra
0
xcopy e:\*.* z: /T /E /I /H /K /X /Y

e:adalah akar dari drive fisik dengan beberapa saham dan semua jenis blok warisan yang tersebar. z:adalah drive "baru", dalam hal ini drive yang dipetakan.

Itu hanya bekerja, bukan untuk berbagi, hanya izin.

John Lamb
sumber
-4

Kunci Program CopyMik Freeware dari:

/ CSF [FileMask1 [FileMask2 [....]]]] Salin atribut keamanan file. Hanya file dengan mask yang ditentukan. (topeng default *)

/ CSD [DirMask1 [DirMask2 [....]]]] Salin atribut keamanan folder. Hanya folder dengan mask yang ditentukan. (topeng default *)

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

pengguna2290929
sumber