Me gustaría replicar los permisos de un archivo a otro. No quiero copiar los datos, solo los permisos.
Por ejemplo, creé un nuevo archivo y quiero que tenga los mismos permisos que otro archivo que ya existía.
windows-7
file-permissions
acl
TaoTao
fuente
fuente
Respuestas:
Puede hacerlo en unos pocos pasos con icacls y un editor de texto.
Primero debes guardar los permisos del archivo original
necesitará editar el
perms.txt
archivo que acaba de crear en la carpeta en la que se ejecutóicacls
. El archivo debería verse así:Puede ignorar todas las cosas en la segunda fila, todo lo que nos importa es la primera fila. Cambie
file1.bin
a su nuevo nombre de archivofile2.bin
y guarde el archivo.Ahora solo necesita restaurar los permisos de archivo en el segundo archivo, tenga en cuenta que esta vez no incluimos el nombre de archivo. (Si recibe un error que dice " No todos los privilegios o grupos a los que se hace referencia están asignados a la persona que llama ", ejecute el programa nuevamente en un símbolo del sistema elevado).
fuente
File.GetAccessControl()
yFile.SetAccessControl()
Para hacerlo en un lote (copie los permisos de seguridad de una subcarpeta o todas las carpetas de una unidad a la misma estenosis de carpeta / archivo en otra unidad), cree, digamos, un
cpdacls.bat
archivo con este contenido:Y luego ejecutarlo como
cpdacls.bat e:\ f:\
.Tenga en cuenta que la estructura de la carpeta en la carpeta de destino debe ser la misma que la estructura de la carpeta en la carpeta de origen, tomada de su raíz , sin depender de qué subcarpeta haya especificado como carpeta de origen.
fuente
La forma más fácil, con mucho, es usar PowerShell y ejecutar:
fuente