Смена владельца и прав на папку и ее содержимое, в которой запущен батник (Full Access <-> Read Only)
Автор: Dragokas
1) RO.cmd (ReadOnly) - делает все файлы и папки доступными только для чтения и выполнения.
Дополнительно разрешается в текущей папке - создавать файлы.
Все остальные операции, в т.ч. и создание файлов в подкаталогах - запрещено.
2) FA.cmd (FullAccess) - восстанавливает полный доступ для всех пользователей.
Для нормальной работы в ОС Windows Vista, Win 7 батник нужно запускать правой кнопкой мыши "От имени Администратора".
Как пользоваться:
Соблюдайте правила: запускать батник только из той папки, в которой нужно ограничить доступ (RO.cmd) или получить полные права (FA.cmd).
Работает рекурсивно для всех подкаталогов, начиная с каталога, в котором находится батник.
Для корректной работы потребуется утилита из состава Microsoft Support Tools - ICACLS
(включена в ОС Windows Server 2003, начиная с SP2).
Поддержка:
Скрипт протестирован в средах английской и русской локализаций, а также:
1) Windows XP SP2 (требуется утилита ICACLS). ICACLS из состава Windows 7 несовместим с XP.
2) Windows Server 2003 SP2
3) Windows 7 SP1
Сохранять в кодировке OEM-866.
FA.cmd
Код (DOS):
@echo off
if "%1"=="" (
Echo Working...
Call "%~dpnx0" 0 1>nul 2>&1
Echo Ready...
Goto :eof
)
Setlocal Enableextensions
Set Cur=%~dp0
Set Cur=%Cur:~0,-1%
takeown /f "%Cur%" /r /d y
icacls "%Cur%" /grant All:f /T /C
icacls "%Cur%" /grant Все:f /T /C
RO.cmd
Код (DOS):
@echo off
if "%1"=="" (
Echo Working...
Call "%~dpnx0" 0 1>nul 2>&1
Echo Ready...
Goto :eof
)
Setlocal Enableextensions
Set Cur=%~dp0
Set Cur=%Cur:~0,-1%
takeown /f "%Cur%" /r /d y
icacls "%Cur%" /deny All:(DE,WDAC,WO,AS,WD,AD,WEA,DC,WA) /T /C
icacls "%Cur%" /deny Все:(DE,WDAC,WO,WD,AS,AD,WEA,DC,WA) /T /C
icacls "%Cur%" /grant All:(RC,S,GR,GW,GE,RD ,REA,X,RA) /T /C
icacls "%Cur%" /grant Все:(RC,S,GR,GW,GE,RD ,REA,X,RA) /T /C
icacls "%Cur%" /grant All:(WD) /C
icacls "%Cur%" /grant Все:(WD) /C
icacls "%~dpnx0" /grant:r Все:f /C
icacls "%~dpnx0" /grant:r All:f /C
В коде использован метод двойного запуска скрипта исключительно для упрощения
перенаправления потока вывода в NUL.
Метод "обворачивания" скобками приводил к синтаксическим ошибкам в силу
некоторых особенностей работы утилиты ICACLS.
Вложения: