Кто-нибудь использовал скрипт для сброса разрешений на каталог домашних каталогов? Я думаю о некоторой комбинации циклов FOR и CACLS, чтобы добавить наследуемое разрешение на изменение для папки, используя то же имя пользователя домена, что и имя папки.
Мы переносим общие ресурсы пользователей с одного сервера на другой, и не все существующие общие ресурсы имеют необходимые разрешения. Я рассматриваю возможность копирования всех папок без копирования разрешений, а затем сброса разрешений с помощью скрипта, чтобы доступ имел только имя пользователя, соответствующее папке. Затем я могу повторно применить любые дополнительные разрешения, необходимые для пользователей, имеющих доступ к папке других пользователей.
Предполагая, что вы используете его на Windows Server 2003 или новее, у вас будут команды TAKEOWN и ICACLS. Я также предполагаю, что это разрешение для папки верхнего уровня установлено разумно (например, «Прошедшие проверку пользователи - Список содержимого папки - Только эта папка», соответствующие разрешения «Администратор», если вы хотите, чтобы они могли входить в папки пользователей и т. Д.).
@echo off
FOR /D %%i in (*) do (
TAKEOWN /f "%%i" /r /d y
ICACLS "%%i" /reset /T
ICACLS "%%i" /grant:r "DOMAIN\%%i":(OI)(CI)F
rem Unremark this line to set the owner to the user, if you like that
rem ICACLS "%%i" /setowner "DOMAIN\%%i" /T
)
Это займет владение, очистит все разрешения и восстановит наследование, добавит пользователя с правами полного доступа в каталог, а затем, при желании, вернет право собственности, если вы удалите последнюю строку.
Мои соболезнования за то, что мне приходится иметь дело с пользователями, которые обмениваются файлами друг с другом из домашних каталогов. Это настоящая боль.
Для справки, это сценарий, который я использовал, потому что он лучше подходит для нашей среды.
@ECHO OFF
FOR /D %%G IN ("*") DO echo y| cacls "%%G" /T /E /G "DOMAIN\%%G:C"
поскольку нам нужно только предоставить пользователю разрешения.