As most of us know, access control lists, or ACLs, are collections of metadata that are attached to files, folders and objects stored using the NTFS file system. Modify an object's ACL and you can restrict or allow access to that object by users or groups of users. However, ACLs don't work on any other file system than an NTFS volume -- and when copying a file or a folder to another NTFS volume, the ACLs don't travel with the file by default.
In some cases this can be useful; I've heard of more than one instance where making a copy of a file or folder to another partition to rid it of invalid ACL information (for dead or disabled accounts) came in handy. But sometimes it's less useful -- for instance, if you're reorganizing things from one hard drive to another and you want to maintain the same permissions on everything you move.
If you use the XCOPY command to mass-move files or folders, the /O or /X switch will preserve the way permissions are both retained and inherited by the objects in their target destination. But what if you want to preserve permissions continually, without having to use XCOPY?
To force ACLs always to be preserved when copying files between volumes, fire up REGEDIT and navigate to HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer. Add a REG_DWORD value named ForceCopyAclwithFile and set it to 1. You will either need to log off and back in again or reboot the system for this to take effect. To undo this, either delete the key or set it to 0.
(Note that Windows XP users with NTFS drives can also use this trick.)
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter.
This was first published in January 2003