Note that this content has also been added to the TechNet Wiki to allow for community editing.
http://social.technet.microsoft.com/wiki/contents/articles/how-to-back-up-and-restore-ntfs-and-share-permissions.aspx
From time to time we are asked how to backup and restore NTFS file system permissions as well as network share permissions. KB article
125996
talks about the network share piece of it, but it does not talk about NTFS permissions.
One thing that has made the NTFS permissions piece of this simpler is the
Icacls
tool. Icacls was developed for Windows Vista as a replacement for tools such as
Cacls
,
Xcacls
, and
Xcacls.vbs
. It was also included in Service Pack 2 for Windows Server 2003 and Windows Server 2008.
Backup and Restore of Share Permissions
To backup share permissions, export the
Shares
registry key.
-
Open
Regedit
to the following location:
HKLMSYSTEMCurrentControlSetServicesLanmanServerShares
- Right-click the Shares registry key and select Export . Give it a file name such as shareperms.reg .
When you want to restore the permissions, double-click shareperms.reg to import it back into the registry.
Use the Reg tool to backup the registry key from the command line:
reg export HKLMSYSTEMCurrentControlSetServicesLanmanServerShares shareperms.reg
If you need to restore it at some point, just run:
reg import shareperms.reg
Backup and Restore of NTFS Permissions
Use this command to backup NTFS permissions:
icacls d:data /save ntfsperms.txt /t /c
The
/T
switch allows it to get subfolder permissions too. The
/C
switch allows it to continue even if errors are encountered (although errors will still be displayed).
Use this command to restore them:
icacls d: /restore ntfsperms.txt
Note that in the command to save the permissions, I specified the target folder
D:Data
, but when I restored them, I specified just
D:
as the target. Icacls is a little funky like that, and here’s why.
If you open the text file with the exported permissions (
ntfsperms.txt
in the above example), you’ll see that Icacls uses relative paths (in bold below). Underneath the relative paths are the permissions for the folders in Security Descriptor Definition Language (
SDDL
) format.
data
D:AI(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;OICIID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)
datafolder1
D:AI(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;OICIID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)
datafolder2
D:AI(A;ID;FA;;;BA)(A;OICIIOID;GA;;;BA)(A;ID;FA;;;SY)(A;OICIIOID;GA;;;SY)(A;OICIID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)
Had I specified
D:Data
in the command to restore the permissions, it would have failed looking for a
D:DataData
folder:
D:>icacls
d:data
/restore perms.txt
d:datadata: The system cannot find the file specified
.
Successfully processed 0 files; Failed processing 1 files
You might think specifying
D:
as the target in the restore command may somehow mess up the permissions on other folders at that level, but as you can see from the
ntfsperms.txt
output file, it only has information about the
Data
folder and subfolders, so that is all it will change.
- Craig Landis