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.

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


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

Получать новые статьи:

5 комментариев

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

  2. А не легче ли просто переписать нужную файловою структуру при помощи \"Total Commander\", который прекрасно сохраняет NTFS Permissions даже при перемещении огромных массивов информации? Или, м.б., я неправильно понял задачу ?

    1. Можно и так, но я уверен, что вы и сами знаете ответ на заданный вопрос. Что лучше хранить: «огромный массив информации» или же один текстовый файл?

  3. Не работает скрипт и не пойму почему. В параметрах указываю целевую и папку назначения. В папке назначения появляются 2 файла, но оба размером 1Кб и пустые. Целевая директория состоит из порядка 150 директорий, внутри тоже очень много файлов.

    ОС Win2003 rtktools установлены.

    Кстати для работы скрипта Subinacl.exe должен лежать в корне диска D:, либо же путь к этому файлу необходимо править в самом скрипте.

    При установке rtktools в переменные среды записывается путь к Subinacl.exe и соответственно можно запускать программу просто через subinacl.

    Что должно быть после окончания работы скрипта?

  4. Когда будет возможность — перепроверю работу скрипта, может какую строчку wordpress съел.

Оставить комментарий



Подписка на блог

Подпишись на обновление блога по RSS блога
Число подписчиков: 123

Поиск по сайту

Партнеры