Copie los permisos de archivo de un directorio a otro

17

Durante el fin de semana copié los datos de nuestra compañía de un disco duro a otro más grande. Pensé que el permiso se habría copiado pero no lo han hecho.

¿Cuál es la mejor (y más rápida) forma de copiar el permiso que se configuró originalmente en mis nuevos datos, sin tener que copiar todos los datos nuevamente? Mis usuarios ahora están accediendo a los datos, así que no quiero volver a copiar los datos, ya que se pueden perder los cambios.

Los datos están alojados en Windows Server 2008 R2

Simon Foster
fuente

Respuestas:

17

Creo que esto hará el trabajo:

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

Copias " SOU ": S = Información de seguridad (ACL de NTFS), O = Información de propiedad, U = aInformación de edición

Si esto no funciona, puede usar este comando para hacer una copia de seguridad de los permisos NTFS:

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

El modificador / T también le permite obtener permisos de subcarpeta. El modificador / C le permite continuar incluso si se encuentran errores (aunque todavía se mostrarán errores).

Y luego use este comando para restaurar los permisos:

icacls d:\ /restore ntfsperms.txt

Tenga en cuenta que en el comando para guardar los permisos, especifiqué la carpeta de destino D:\Data, pero cuando los restauré, especifiqué D:\como objetivo. Puede pensar que especificar D:\como el objetivo en el comando de restauración de alguna manera puede estropear los permisos en otras carpetas en ese nivel, pero como puede ver en el archivo de salida ntfspermissions.txt, solo tiene información sobre la carpeta y subcarpetas de datos, de modo que es todo lo que va a cambiar.

Kalatzis Stefanos
fuente
1
Creo que icacls es la respuesta aquí. +1
MDMarra
convenido. Como no puede volver a copiar los datos, ya que los datos ya están en uso y probablemente hayan cambiado, icacls para exportar / importar los permisos parece ser la mejor manera de hacerlo.
Rex
Gracias por toda su ayuda, estoy exportando icacls mientras escribo e intentaré importar más tarde. La próxima vez recordaré comprobar siempre mis permisos
Simon Foster, el
3

Usando PowerShell:

Get-Acl 'source path' | Set-Acl 'destination path'
torvin
fuente
1
Estaba buscando más de lo mismo. Me parece que esta es una respuesta real. Otros dicen qué hacer antes de la copia, no después de lo solicitado
alvaroc
0

Puedes intentar usar Robocopy . AFAIK todavía funciona en versiones más nuevas de Windows.

pritaeas
fuente
¿Conoces la sintaxis que necesito? Intenté robocopy source destination / secfix / xo / xn / xc de la página anterior y arroja un error sobre no saber qué permisos copiar
Simon Foster,
1
Esto se debe a que la robocopy solo funcionará si el contenido del recurso compartido no se modifica. Parece que tus usuarios probablemente lo hayan cambiado, ¿verdad? No creo que la robocopia sea la herramienta para usar ahora (aunque debería haberla usado al principio)
MDMarra
Esa guía es para una versión muy temprana de robocopy. ¿Qué versión estás usando ahora? Es posible que pueda salirse con una / copia: s ahora solo para cambiar las ACL de NTFS, pero no estoy seguro ... Comenzaré una pequeña prueba ahora.
HopelessN00b
0

Como dijo Priaeas, robocopy.

Práctica guía de referencia para los interruptores a utilizar .

/ copyall o / copy: DATSOU copiará "todo" (datos, atributos, marcas de tiempo, ACL NTFS, propietario e información de auditoría).

/ COPY: copyflag [s]: What to COPY (el valor predeterminado es / COPY: DAT) (copyflags: D = Datos, A = Atributos, T = Marcas de tiempo S = Seguridad = NTFS ACL, O = Información del propietario, U = aEdición de información) .

HopelessN00b
fuente
1
Dice específicamente que no quiere copiar los datos. Además, robocopy solo copiará la seguridad si los archivos no se han modificado. Dado que la participación está en producción ahora, diría que es una apuesta segura que ha cambiado.
MDMarra
0
xcopy e:\*.* z: /T /E /I /H /K /X /Y

e:era la raíz de un disco físico con varios recursos compartidos y todo tipo de bloques de herencia esparcidos. z:era la unidad "nueva", en este caso una unidad asignada.

Simplemente funcionó, no para las acciones, solo para los permisos.

John Lamb
fuente
-4

CopyMik Freeware Program mit Keys:

/ CSF [FileMask1 [FileMask2 [....]]]] Copie los atributos de seguridad del archivo. Solo archivos con la máscara especificada. (máscara predeterminada *)

/ CSD [DirMask1 [DirMask2 [....]]]] Copia los atributos de seguridad de la carpeta. Solo carpetas con la máscara especificada. (máscara predeterminada *)

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

usuario2290929
fuente