Backup прав ntfs

Иногда возникает ситуация, когда необходимо добавить права новому пользователю или изменить права существующему в директории со сложной структурой. Такая папка могла сложиться исторически. В этой папке могут, к примеру, существовать папки отделов, личные папки с разными уровнями доступа. Такая ситуация является не очень хорошей, но затраты и усилия на нормальную структуризацию могут быть очень большими.
Итак, существует бесплатная утилита microsoft- Subinacl.exe, входящая в пакет Windows Server 2003 Resource Kit Tools, которая позволяет сохранять права пользователей в определенной папке.

Пишем bat файл, который облегчит работу:
@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%
d:\subinacl.exe /noverbose /nostatistic /outputlog=%F1% /subdirectories %D1% /display
d:\subinacl.exe /noverbose /nostatistic /outputlog=%F2% /subdirectories %D2% /display
endlocal
goto :EOF
:Restore
if not exist %F1% goto :Rest1
if not exist %F2% goto :Rest2
d:\subinacl /nostatistic /playfile %F1%
d:\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

Синтаксис NTFSBKP.bat:

NTFSBKP DriveOrFolder DestinationFolder BKP|RST

Где:
DriveOrFolder — это диск или папка, которая содержит файлы и подкаталоги,
с которых необходимо скопировать NTFS доступ.
DestinationFolder — это папка, в которой будут находиться файлы с бэкапами.
BKP|RST : BKP — сохранить NTFS доступ, RST — восстановить  NTFS доступ из ранее сохраненных параметров.

Папку с 80000 файлов скрипт сохраняет примерно 15-20 минут, результирующий файл был размером 109 мегабайт.

Восстанавливал он дольше- минут 30-40.

Понравилась статья? Подписывайтесь на мою ленту RSS.

Популярность: 15%



Также почитайте эти записи:

Один комментарий

anikas.livejournal.comоктября 9, 2009 at 11:02

Действительно очень эффективно, потому что избавляет от кучи ручной работы. Но для меня этот скрипт ничем не лучше архиватора Winrar, который также умеет сохранять разрешения и восстанавливать их, правда вместе с файлами. У меня есть необходимость периодически раздавать права на флешках, чтобы частично обезопасить их от вирусов и защитить клиентские компьютеры от заражения. С этой задачей, приведенный скрипт и утилита SubinACL, не справляются, ибо не устанавливают права на корень тома, что в моём случаем важно. С задачей восстановления разрешений на файлы и директории приведенное решение вполне успешно справляется.

Leave a comment

Your comment

Защитный код Укажите защитный код!