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

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

Ответить
Настройки темы
Любой язык - [решено] Создать папки и раздать им права

Новый участник


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

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


Здравствуйте, помогите с решением проблемы, мне нужно создать ряд папок, скажем 1,2,3 ....(отделы), в каждой папке 3-4 папки с фамилиями и к папкам с фамилиями дать полные права всем, а папкам 1,2,3... (названия отделов) дать только на чтение всем, я полазал по форуму и нашел статью где скрипт берет из текстового файла имена папок и создает их (мне это понравилось и подходит, при необходимости можно в txt добавить новое ФИО или удалить старое или перенести в другой отдел), но там они не стали расписывать всю технологию и ушли в аську. Помогите пожалуйста написать скрипт
P.S. вот тема которую я нашел http://forum.oszone.net/thread-147058.html

Отправлено: 07:54, 05-02-2016

 

Ветеран


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

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


PowerShell:

Код: Выделить весь код
# Создадим папки для примера
md D:\Отделы
# Название отделов
1,2,3 | Foreach {md "D:\Отделы\$_"}
# Фамилии
"Иванов","Петров","Сидоров" | Foreach {md "D:\Отделы\1\$_"}

Get-ChildItem D:\Отделы | Where {$_.PsIsContainer} | Foreach {
	icacls $_.FullName /inheritance:r /grant "Все:(OI)(CI)(IO)F" /grant "Все:R"
}
icacls $_.FullName /inheritance:r /grant "ВсеOI)(CI)(IO)F" /grant "Все:R" - убираем наследования и удаляем все предыдущие права, на основную паку дает Всем - чтение, на подпапки - Всем - Полный доступ.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:40, 05-02-2016 | #2



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

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


Новый участник


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

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


Все отлично создается, прям то что нужно, с правами только затык, я поменял группу ВСЕ на Обмен (в ней сидят пользователи которым будет разрешен этот ресурс), в безопасности все права появились, вот только пользователи не могут ничего создать или удалить в папках "Иванов","Петров","Сидоров" хотя они состоят в группе Обмен и у них полные права. Может стоит добавить "прошедшие проверку" и "система" ? я по аналогии добавил "Администратор"
icacls $_.FullName /inheritance:r /grant "Администратор:R" /grant "Администратор:R", но на именных папках он не встал, подскажете что не так сделал?

Отправлено: 06:13, 08-02-2016 | #3


Новый участник


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

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


Вот то что я изменил, 2-ую строку закоментил, чтобы он не пере создавал мой ресурс(может в этом проблема)

Код: Выделить весь код
# Создадим папки для примера
#md D:\Exchange\Администрация\Обмен
# Название отделов
"Руководство","ОИТ","ОКС" | Foreach {md "D:\Exchange\Администрация\Обмен\$_"}
# Фамилии
"Иванов","Петров","Сидоров" | Foreach {md "D:\Exchange\Администрация\Обмен\Руководство\$_"}
"Иванов","Петров" | Foreach {md "D:\Exchange\Администрация\Обмен\ОИТ\$_"}
"Иванов" | Foreach {md "D:\Exchange\Администрация\Обмен\ОКС\$_"}

Get-ChildItem D:\Exchange\Администрация\Обмен | Where {$_.PsIsContainer} | Foreach {
    icacls $_.FullName /inheritance:r /grant "Обмен:(OI)(CI)(IO)F" /grant "Обмен:R"
    icacls $_.FullName /inheritance:r /grant "Администратор:R" /grant "Администратор:R"
}
папок будет больше, поэтому мне и нужно понять что я делаю не так, огромное человеческое спасибо за понимание и помощь

Отправлено: 06:30, 08-02-2016 | #4


Ветеран


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

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


Цитата MMariarti:
Вот то что я изменил, 2-ую строку закоментил, чтобы он не пере создавал мой ресурс(может в этом проблема) »
«Пересоздать» уже существующий каталог невозможно, не переживайте.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:50, 08-02-2016 | #5


Новый участник


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

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


Прошу прощения за излишнею самоуверенность, сам накосячил с правами доступа к папке "Обмен", разобрался. Но у меня еще одна дилемма: конечный пользователь имеет полный доступ на папки "Иванов","Петров","Сидоров", а это означает что, скажем Петров "неумышленно" может удалить папку "Иванова" и тот в какой-то промежуток времени не получит или потеряет важную информацию. И тут я недостойный и тщедушный, раболепно и с безмерным уважением к Вам о Великие знатоки тысяч и тысяч языков программирования, прошу подсказать что нужно добавить в скрипт, чтобы запретить удаление конечной папки "Иванов","Петров","Сидоров".

Отправлено: 04:40, 10-02-2016 | #6


Ветеран


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

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


Теперь четко и ясно сформулируйте задачу по пунктам.

- Структура папок
- Права на каждую папку и подпапку
- Как соотносится папка-пользователь
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:31, 10-02-2016 | #7


Новый участник


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

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


Изображения
Тип файла: jpg 1.jpg
(237.6 Kb, 4 просмотров)

1.Обмен
____|___2.Приемная
___________|__3.Иванов
___________|__3.Петров

Петров и Иванов имеют полный доступ во всех папках третьего уровня, но удалять эти папки они не должны, в папках 1 и 2 уровня могут только читать.
Скрипт который вы написали все делает как надо, создает отделы (1,2,3,) -> в каждом отделе создает именные папки (Иванов, Петров, Сидоров) дает права на отделы "только чтение" (правильно) и именные папки "полный доступ". Нужно чтобы пользователь не мог удалить именные папки (Иванов, Петров, Сидоров). я руками добавил запрет, удалять, в безопасности (скрин прилагаю). То есть у папок Иванов, Петров, Сидоров нужны права на полный доступ и запрет на удаление самой папки Иванов, Петров, Сидоров, и получается что пользователь не может удалить именную папку , а внутри нее может делать все что ему вздумается. Заранее спасибо.

Последний раз редактировалось MMariarti, 11-02-2016 в 11:37.


Отправлено: 03:46, 11-02-2016 | #8


Ветеран


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

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


Код: Выделить весь код
# Создадим папки для примера
md D:\Отделы
# Название отделов
1,2,3 | Foreach {md "D:\Отделы\$_"}
# Фамилии
"Иванов","Петров","Сидоров" | Foreach {md "D:\Отделы\1\$_"}

Get-ChildItem D:\Отделы | Where {$_.PsIsContainer} | Foreach {
	icacls $_.FullName /inheritance:r /grant "Все:R"
}

Get-ChildItem D:\Отделы\*\* | Where {$_.PsIsContainer} | Foreach {
	icacls $_.FullName /inheritance:r /grant "Все:(OI)(CI)(F)" /T
	$acl = Get-ACl $_.FullName
	$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Все","DeleteSubdirectoriesAndFiles, Delete, ChangePermissions, TakeOwnership","None","None","Deny")
	$acl.AddAccessRule($rule)
	Set-Acl -Path $_.FullName -AclObject $acl
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:37, 11-02-2016 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
FreeBSD - Как красиво раздать права на папки во FreeNAS?.. znak-ognya Общий по FreeBSD 8 29-05-2015 09:17
2008 - Раздать права на папку spool TeDdix Windows Server 2008/2008 R2 0 04-10-2010 15:28
раздать права NTFS exo Microsoft Windows NT/2000/2003 11 21-10-2008 12:38
Доступ - раздать права на доступ к сетевым ресурсам choodo Microsoft Windows 2000/XP 2 30-09-2008 13:44
Каким образом раздать права пользователям Pixer Сетевые технологии 12 24-08-2006 14:22




 
Переход