![]() |
Создать кучу папок, дать разрешения.
Вложений: 1
Добрый день!
есть следующая структура: есть папка Workplace, в ней папки, соответствующие каждой букве английского алфавита (A, B, C, D ... Z), в каждой "букве" куча папок соответствующих названиям компаний - партнеров, в них еще 6 папок, на которые нужно разные доступы разным группам дать. Задача: Создать в папках - буквах папки - партнеры и в них создать по 6 папок. и назначить на все это безобразие соответствующие права доступа. привожу схему для наглядности: |
1. Непонятно, откуда брать названия партнеров. Если как в примере (Партнер-1, Партнер-2, etc) то по скольку штук?
2. Непонятно, какие права доступа Вам нужны. Уточните конкретнее, например Группе "adm" ресурсы "Contacts" и "Information" полные прав, а на остальные папки - только чтение, Группе "Managers" полные права на "PriceBooks" и "Products" и т.д. |
1. Названия партнеров брать из зарее подготовленного списка (txt, xls, ini что удобнее)
я вижу примерно следующее: letter: A Astana-finance Alma-TV Asteros а создавать будет примерно так: if letter:=A then makedir F:\Workplace\A\.... ну..это конечно фантазии, но, я думаю, логика ясна. :) 2. в приведенном скрипте, написанном мной для раздачи прав, все описано. Цитата:
|
Вот, наверно так можно (ошибки не отрабатываются, но можно добавить вывод %ErrorLevel% в лог-файл):
Код:
@Echo Off Код:
Allergy |
дык мой скрипт только на папку одного партнера, надо как то сделать чтобы, он на все папкис одинаковыми именами, в данной директории, назначал такие права.
|
:o ... :lol:
Поясняю работу скрипта: в переменные Wrk и List (кстати извиняюсь - там остались значения, на которых этот скрипт и тестил) вписывается полный путь к Вашей папке (Workplace кажется) и путь с именем файла списка фирм. Далее в цикле из файла выбирается очередная фирма, от нее выделяется первая буква для раскладывания по каталогам A-B-C-D...W-Z, создается дерево каталогов Буква-Фирма, внутри создается пачка Ваших стандартных каталогов Contracts .. Projects и для них назначаются права по Вашему скрипту. ... из списка выбирается следующая фирма и процесс повторяется до тех пор, пока не будут созданы все подкаталоги для каждой фирмы и для каждой будут назначены права. |
xcacls это отдельно устанавливаемая программа, которая работает из командной строки, скрипт я проверял свой - работает нормально. Мне просто сохранить Батник нужно, так ведь? я впервые со скриптами такими дело имею )
|
Cоздаешь текстовый файл с расширением *.BAT, например Partners.bat
В него через буфер обмена вставляешь текст, исправляешь строки set Wrk=C:\Temp и set List=C:\Partners.txt на нужные тебе, сохраняешь и запускаешь. После чего пробегаешь по некоторым фирмам и проверяешь назначенные права. |
Создал файл Partners.txt написал туда "партнеров" на разные буквы начинающихся, создал папку D:/test, кинул в корень D:/ файл script_folders.bat с твоим кодом. изменил set Wrk=D:\test и set List=D:\Partners.txt , Запускаю, на долю секунды появляется черное окно командной строки, но ничего не создается, пробовал убирать cacls, не помогло, тоже самое...
|
Извиняюсь за задержку - была работа.
Чтож, добавляем краткий лог-файл (появится рядом с батником) и запускаем еще раз. Лог-файл прошу выложить сюда. Можно для скорости и во избежание засирания форума (не уверен, что это по правилам форума) связаться по асе: 268808419 Код:
@Echo Off |
Вложений: 1
Классно! получилось! папки создаются правильно, по первой букве фирмы, дальше - весь пучок папок в "фирме - партнере", но вот мой скрипт как то странно работает, права назначает, но совершенно левые, у меня на группы стоит назначение он назначает отдельны людям... странно вот лог:
|
1. Что сразу бросилось в глаза - я тупо скопировал список команд по назначению прав. В строках по назначению прав на Other Correspondence название каталога обязательно нужно заключить в кавычки - скрипт xcacls пытается назначать права каталогу Other.
2. Других ошибок не вижу. Попробуйте рукчами запустить Xcacls на кокой-нить каталог - если окажется, что вместо групп (на примере группы "DL contracts FA") права прописаны пользователям, то это дело рук скрипта Xcacls и тогда советую воспользоваться просто командой cacls - синтаксис тотже (можно добавить ключ /T), но группам права назначаются гарантированно (у меня на ней реализована автоматическая шара бэкапного диска). 3. Уточнение - "otccorporation" - это Ваш домен? Если да и компьютер, с которого скрипт запущен, также в домене, то название домена можно опускать. |
Цитата:
Цитата:
Цитата:
идем дальше: натолько что созданную папку - партнера нужно следующее: xcacls *letter*/G "otccorporation\DL name RO":R вот тут то и затык, получается, папку создал, как то проверил что только что создал, и назначил на него разрешение...и еще, надо бы убрать наследование в скрипте... |
Думаю, что на "букву" также стоит дать права Системе и админу (полные), чтобы потом не корячится.
Фирмы унаследуют права "DL name RO", Системе и админу а для Contracts .. Projects права будут без наследования (первая команда назначения без ключа /E). Код:
@Echo Off |
Прям то что надо! спасибо большое! создает, читает из файла, назначает права. благодарю!
|
Здравствуйте, можно опять поднять эту тему, мне интересна самим схема и если чесно, помощь в написании скрипта, делаем батник к нему txt, с описанием необходимых папок. помогите сделать данный скрипт
|
Время: 10:59. |
Время: 10:59.
© OSzone.net 2001-