9945 » How can a script backup or restore NTFS permissions? 05-Dec-05
Using the corrected version of SubInAcl, I have scripted NTFSBKP.bat
to backup or restore NTFS permissions.
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.
NTFSBKP.bat contains:@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
End of Article

