Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] назначить нужные права на папки в каталоге

Ответить
Настройки темы
Любой язык - [решено] назначить нужные права на папки в каталоге

Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


помогите решить такую задачу:
имеем каталог mail в котором лежат почтовые профили
вася
федя
....
дима
яна

сейчас ntfs права на данные папки(вася, федя) полные для всех.
этих папок (профилей почтовых) около 300 штук.
требуется для каждой из данных папок раздать полные права для группы администраторов и полные права для соответствующего пользователя
т.е. имя папки и есть доменное имя

сгодиться любой скрипт, наработка или что то способное упростить данную работу.
руками перебирать хватило на 20 профилей

Отправлено: 15:29, 10-09-2014

 

Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


группа доменных администраторов заранее известна, а пользователя требуется получить на основе имени соответствующей папки

да, и, галочку наследования с данных папок требуется убрать
так как после раздачи прав на под-папки для корневой папки mail будут даны права полные для администраторов(группа) и только чтение просмотр всем остальным доменным пользователям(группа)

Отправлено: 15:31, 10-09-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Когда-то писал нечто подобное когда из-за изменения имен пользователей перебатонило права. Для админов и для простоюзеров лучше задать права для корневой папки с наследованием, далее (если я правильно понял) имя папки = %username% в домене. т.о. это будет как-то так:
Код: Выделить весь код
@echo off
FOR /f %%a IN ('dir * /b /a:d') do icacls %%a /grant:r domain\%%a:(oi)(ci)f 2>>restore_control_error.log
domain подставляем свой.
что касается (oi)(ci)f то здесь лучше посмотреть icacls /? (указанные параметры я использовал у себя, насколько они подойдут в данной задаче сказать не могу)
restore_control_error.log смотрим после того как отработает, некоторые папки пришлось редактировать вручную из-за несоответствия папок именам.

это если кого беспокоит вероятность того что права по непонятным причинам могут слететь и/или поломаться от неудачно поставленного чекбокса. Батник пробегается по всей папке с шарами и бэкапит acl. Запускается глубокой ночью из шедулера, ну и работает соответсвенно количеству файлов и папок.
Код: Выделить весь код
@echo off
set DAT=%DATE:~6,4%.%DATE:~3,2%.%DATE:~0,2%
icacls d:\shares\* /save d:\acl_backup\d_shares_acl_backup.bak /t /c /q 2>> d:\acl_backup\d_shares_acl_backup_error.log
"C:\Program Files\WinRAR\WinRAR.exe" a d:\acl_backup\%dat%.rar e:\acl_backup\*.bak -df
"C:\Program Files\WinRAR\WinRAR.exe" a d:\acl_backup\%dat%.rar e:\acl_backup\*.log -df

Последний раз редактировалось Elven, 10-09-2014 в 16:53.


Отправлено: 16:10, 10-09-2014 | #3


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


не совсем понял как запускать
пишет Непредвиденное появление: %%a.

сохранил в бат запустил
в лог выдал процесс не может получить доступ к файлу так как файл занят другим процессом

Цитата Elven:
FOR /f %%a IN ('dir * /b /a:d') do icacls %%a /grant:r domain\%%aoi)(ci)f 2>>restore_control_error.log »
не понял куда %username% приставить

Отправлено: 16:44, 10-09-2014 | #4


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


batyaPS, сохранить текст как BAT'ник/CMD'шник и запустить. Если запускать из командной строки то заменить %% на %.
Забыл написать в предыдущем посте: батник ориентирован на запуск из папки содержащей папки пользователей, в данном примере:

mail\вася\
mail\федя\
mail\дима\
mail\яна\
mail\restore_control.cmd

Отправлено: 16:53, 10-09-2014 | #5


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


Elven, уже понял так и сделал, %username% надо куда вписывать ?

версия icacls.exe важна ? у меня такая 5.2.3790.3959

Отправлено: 16:54, 10-09-2014 | #6


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Цитата Elven:
(если я правильно понял) имя папки = %username% в домене »
он вот здесь подставляется
Код: Выделить весь код
@echo off
FOR /f %%a IN ('dir * /b /a:d') do icacls %%a /grant:r domain\%%a:(oi)(ci)f 2>>restore_control_error.log
если папке федя соответствует в домене пользователь fedia то нужно будет усложнять соответственно.

версия icacls вроде играть не должна.

Отправлено: 17:10, 10-09-2014 | #7


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


я не понял что он делает, почему то прогоняет по два раза
читать дальше »
E:\TEST>FOR /F %a IN ('dir * /b /a:d') do icacls %a /grant:r corp.tander.ru\%a
oi)(ci)f 2>>error.log

E:\TEST>icacls almazova_iv /grant:r corp.tander.ru\almazova_ivoi)(ci)f 2>>err
or.log

E:\TEST>FOR /F %a IN ('dir * /b /a:d') do icacls %a /grant:r corp.tander.ru\%a
oi)(ci)f 2>>error.log

E:\TEST>icacls almazova_iv /grant:r corp.tander.ru\almazova_ivoi)(ci)f 2>>err
or.log

E:\TEST>icacls amelina_nv /grant:r corp.tander.ru\amelina_nvoi)(ci)f 2>>error
.log

E:\TEST>pause
Для продолжения нажмите любую клавишу . . .

E:\TEST>icacls amelina_nv /grant:r corp.tander.ru\amelina_nvoi)(ci)f 2>>error
.log

E:\TEST>FOR /F %a IN ('dir * /b /a:d') do icacls %a /grant:r corp.tander.ru\%a
oi)(ci)f 2>>error.log

E:\TEST>icacls almazova_iv /grant:r corp.tander.ru\almazova_ivoi)(ci)f 2>>err
or.log

E:\TEST>icacls amelina_nv /grant:r corp.tander.ru\amelina_nvoi)(ci)f 2>>error
.log

E:\TEST>pause
Для продолжения нажмите любую клавишу . . .


Цитата Elven:
если папке федя соответствует в домене пользователь fedia то нужно будет усложнять соответственно. »
нет папка называется pupkin_pp пользователь так же pupkin_pp

читать дальше »

Microsoft Windows [Версия 5.2.3790]
(С) Корпорация Майкрософт, 1985-2003.

E:\TEST>dir
Том в устройстве E имеет метку FILES
Серийный номер тома: 5811-4D32

Содержимое папки E:\TEST

10.09.2014 17:12 <DIR> .
10.09.2014 17:12 <DIR> ..
10.09.2014 16:41 <DIR> bezgin_ab
10.09.2014 17:08 103 ICACLS.CMD
10.09.2014 16:41 <DIR> popow_sn
1 файлов 103 байт
4 папок 313*184*882*688 байт свободно

E:\TEST>



читать дальше »

E:\TEST>FOR /F %a IN ('dir * /b /a:d') do icacls %a /grant:r corp.tander.ru\%aoi)(ci)f 2>>error.l
og

E:\TEST>icacls bezgin_ab /grant:r corp.tander.ru\bezgin_aboi)(ci)f 2>>error.log

E:\TEST>FOR /F %a IN ('dir * /b /a:d') do icacls %a /grant:r corp.tander.ru\%aoi)(ci)f 2>>error.l
og

E:\TEST>icacls bezgin_ab /grant:r corp.tander.ru\bezgin_aboi)(ci)f 2>>error.log

E:\TEST>icacls popow_sn /grant:r corp.tander.ru\popow_snoi)(ci)f 2>>error.log

E:\TEST>pause
Для продолжения нажмите любую клавишу . . .

E:\TEST>icacls popow_sn /grant:r corp.tander.ru\popow_snoi)(ci)f 2>>error.log

E:\TEST>FOR /F %a IN ('dir * /b /a:d') do icacls %a /grant:r corp.tander.ru\%aoi)(ci)f 2>>error.l
og

E:\TEST>icacls bezgin_ab /grant:r corp.tander.ru\bezgin_aboi)(ci)f 2>>error.log

E:\TEST>icacls popow_sn /grant:r corp.tander.ru\popow_snoi)(ci)f 2>>error.log

E:\TEST>pause
Для продолжения нажмите любую клавишу . . .


пользователи в домене присутствуют

Отправлено: 17:10, 10-09-2014 | #8


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


перепроверил несколько раз, папка исправно цепляет права родительской и добавляет права пользователю. в error.log ничего не пишется?

Отправлено: 17:41, 10-09-2014 | #9


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


Цитата Elven:
в error.log ничего не пишется? »
процесс не может получить доступ к файлу так как файл занят другим процессом

хотя файлы 100 процентов ни чем не заняты, так как на макете тренеруюсь

Отправлено: 21:18, 10-09-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] назначить нужные права на папки в каталоге

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - Как назначить права пользователям? Diman19 Microsoft Windows 7 1 27-01-2014 17:06
Доступ - [решено] Как назначить на папки разрешения, используемые по умолчанию? automobile Microsoft Windows 7 7 12-03-2011 22:07
Установка - [решено] Обновления от Microsoft: нужные, не нужные. Польза или вред. flev45 Microsoft Windows 7 18 29-09-2010 13:05
Как назначить разным пользователям разные права по сети aleks267 Сетевые технологии 4 30-01-2004 19:06




 
Переход