|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Создать папки и раздать им права |
|
Любой язык - [решено] Создать папки и раздать им права
|
Новый участник Сообщения: 11 |
Здравствуйте, помогите с решением проблемы, мне нужно создать ряд папок, скажем 1,2,3 ....(отделы), в каждой папке 3-4 папки с фамилиями и к папкам с фамилиями дать полные права всем, а папкам 1,2,3... (названия отделов) дать только на чтение всем, я полазал по форуму и нашел статью где скрипт берет из текстового файла имена папок и создает их (мне это понравилось и подходит, при необходимости можно в txt добавить новое ФИО или удалить старое или перенести в другой отдел), но там они не стали расписывать всю технологию и ушли в аську. Помогите пожалуйста написать скрипт
P.S. вот тема которую я нашел http://forum.oszone.net/thread-147058.html |
|
Отправлено: 07:54, 05-02-2016 |
Ветеран Сообщения: 1259
|
Профиль | Отправить 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" } ![]() |
Отправлено: 09:40, 05-02-2016 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Все отлично создается, прям то что нужно, с правами только затык, я поменял группу ВСЕ на Обмен (в ней сидят пользователи которым будет разрешен этот ресурс), в безопасности все права появились, вот только пользователи не могут ничего создать или удалить в папках "Иванов","Петров","Сидоров" хотя они состоят в группе Обмен и у них полные права. Может стоит добавить "прошедшие проверку" и "система" ? я по аналогии добавил "Администратор"
icacls $_.FullName /inheritance:r /grant "Администратор:R" /grant "Администратор:R", но на именных папках он не встал, подскажете что не так сделал? |
Отправлено: 06:13, 08-02-2016 | #3 |
Новый участник Сообщения: 11
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать Цитата MMariarti:
|
||
Отправлено: 08:50, 08-02-2016 | #5 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать Прошу прощения за излишнею самоуверенность, сам накосячил с правами доступа к папке "Обмен", разобрался. Но у меня еще одна дилемма: конечный пользователь имеет полный доступ на папки "Иванов","Петров","Сидоров", а это означает что, скажем Петров "неумышленно" может удалить папку "Иванова" и тот в какой-то промежуток времени не получит или потеряет важную информацию. И тут я недостойный и тщедушный, раболепно и с безмерным уважением к Вам о Великие знатоки тысяч и тысяч языков программирования, прошу подсказать что нужно добавить в скрипт, чтобы запретить удаление конечной папки "Иванов","Петров","Сидоров".
|
Отправлено: 04:40, 10-02-2016 | #6 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Теперь четко и ясно сформулируйте задачу по пунктам.
- Структура папок - Права на каждую папку и подпапку - Как соотносится папка-пользователь |
Отправлено: 11:31, 10-02-2016 | #7 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать 1.Обмен
____|___2.Приемная ___________|__3.Иванов ___________|__3.Петров Петров и Иванов имеют полный доступ во всех папках третьего уровня, но удалять эти папки они не должны, в папках 1 и 2 уровня могут только читать. Скрипт который вы написали все делает как надо, создает отделы (1,2,3,) -> в каждом отделе создает именные папки (Иванов, Петров, Сидоров) дает права на отделы "только чтение" (правильно) и именные папки "полный доступ". Нужно чтобы пользователь не мог удалить именные папки (Иванов, Петров, Сидоров). я руками добавил запрет, удалять, в безопасности (скрин прилагаю). То есть у папок Иванов, Петров, Сидоров нужны права на полный доступ и запрет на удаление самой папки Иванов, Петров, Сидоров, и получается что пользователь не может удалить именную папку , а внутри нее может делать все что ему вздумается. Заранее спасибо. |
Последний раз редактировалось MMariarti, 11-02-2016 в 11:37. Отправлено: 03:46, 11-02-2016 | #8 |
Ветеран Сообщения: 1259
|
Профиль | Отправить 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 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|