Backup/Restore NTFS Security Settings


This is a very handy script that I used to backup and restore the NTFS security settings last time for a File Server migration project. If you would like to try it, all you need to do is to copy and paste the following script into a text file and rename it to NTFSBKP.bat, then download the utility ‘subinacl.exe’ from Microsoft and place it in the same folder.

********************************************

REM The syntax for using NTFSBKP.bat is: NTFSBKP DriveOrFolder DestinationFolder BKP|RST
:: Where:
:: DriveOrFolder  is the drive, or folder, including files and sub-folders, whose NTFS security you wish to backup or restore.
:: DestinationFolder  is the destination folder that will contain /does contain two files that hold backed up security attributes.
:: BKP|RST BKP causes NTFSBKP.bat to backup the NTFS security. RST causes NTFSBKP.bat to restore the NTFS security from the previous backup.

@echo off
If {%3}=={} @echo Syntax: NTFSBKP DriveOrFolder DestinationFolder BKP^|RST&goto :EOF
if not exist %1 @echo NTFSBKP – %1 NOT FOUND.&goto :EOF
if not exist %2 @echo NTFSBKP – %2 NOT FOUND.&goto :EOF
if /i {%1}=={%2} @echo Syntax: NTFSBKP DriveOrFolder DestinationFolder BKP^|RST&goto :EOF
if /i {%3}=={BKP} goto OK
if /i {%3}=={RST} goto OK
@echo Syntax: NTFSBKP DriveOrFolder DestinationFolder BKP^|RST&goto :EOF
:OK
setlocal
set DorF=%1#
set DorF=%DorF:”=%
set DorF=%DorF:\#=%
set DorF=%DorF:#=%
set Fld=%2#
set Fld=%Fld:”=%
set Fld=%Fld:\#=%
set Fld=%Fld:#=%
set Sw=%3
set F1=%DorF%
set F1=%F1::\=_%
set F1=%F1:\=_%
set F2=”%Fld%\%F1%_ALL.log”
set F1=”%Fld%\%F1%.log”
if /i “%Sw%” EQU “RST” goto Restore
set D1=”%DorF%”
set D2=”%DorF%\*.*”
if exist %F1% del /q %F1%
if exist %F2% del /q %F2%
subinacl /noverbose /nostatistic /outputlog=%F1% /subdirectories %D1% /display
subinacl /noverbose /nostatistic /outputlog=%F2% /subdirectories %D2% /display
endlocal
goto :EOF
:Restore
if not exist %F1% goto :Rest1
if not exist %F2% goto :Rest2
subinacl /nostatistic /playfile %F1%
subinacl /nostatistic /playfile %F2%
endlocal
goto :EOF
:Rest1
@echo NTFSBKP %1 %2 %3 – %F1% NOT FOUND.
endlocal
goto :EOF
:Rest2
@echo NTFSBKP %1 %2 %3 – %F2% NOT FOUND.
endlocal

********************************************

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s