![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Создать кучу папок, дать разрешения. |
|
|
CMD/BAT - [решено] Создать кучу папок, дать разрешения.
|
Новый участник Сообщения: 31 |
Добрый день!
есть следующая структура: есть папка Workplace, в ней папки, соответствующие каждой букве английского алфавита (A, B, C, D ... Z), в каждой "букве" куча папок соответствующих названиям компаний - партнеров, в них еще 6 папок, на которые нужно разные доступы разным группам дать. Задача: Создать в папках - буквах папки - партнеры и в них создать по 6 папок. и назначить на все это безобразие соответствующие права доступа. привожу схему для наглядности: |
|
Отправлено: 12:58, 04-08-2009 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать 1. Непонятно, откуда брать названия партнеров. Если как в примере (Партнер-1, Партнер-2, etc) то по скольку штук?
2. Непонятно, какие права доступа Вам нужны. Уточните конкретнее, например Группе "adm" ресурсы "Contacts" и "Information" полные прав, а на остальные папки - только чтение, Группе "Managers" полные права на "PriceBooks" и "Products" и т.д. |
------- Отправлено: 13:23, 04-08-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать 1. Названия партнеров брать из зарее подготовленного списка (txt, xls, ini что удобнее)
я вижу примерно следующее: letter: A Astana-finance Alma-TV Asteros а создавать будет примерно так: if letter:=A then makedir F:\Workplace\A\.... ну..это конечно фантазии, но, я думаю, логика ясна. ![]() 2. в приведенном скрипте, написанном мной для раздачи прав, все описано. Цитата:
|
|
Отправлено: 14:15, 04-08-2009 | #3 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Вот, наверно так можно (ошибки не отрабатываются, но можно добавить вывод %ErrorLevel% в лог-файл):
@Echo Off SetLocal EnableDelayedExpansion set Wrk=C:\Temp set List=C:\Partners.txt for /F "Tokens=* Delims=" %%P in (%List%) do ( cd /D %Wrk% Title Preparing "%%P" set Letter=%%P set Letter=!Letter:~0,1! if not exist !Letter! md !Letter! cd !Letter! if not exist "%%P" md "%%P" cd "%%P" for %%N in (Contracts,Information,"Other Correspondence",Pricebooks,Products,Projects) do md %%N rem Далее Ваш скрипт, только на счет "Xcacls" я не уверен - ни в XP-SP3 ни в W2k3SP1 такой команды не нашел... cacls Contracts /E /G "otccorporation\DL contracts FA":F cacls Contracts /E /G "otccorporation\Administrator":F cacls Contracts /E /G "otccorporation\DL contracts RO":R cacls Information /E /G "otccorporation\DL Information FA":F cacls Information /E /G "otccorporation\Administrator":F cacls Information /E /G "otccorporation\DL Information RO":R cacls Other Correspondence /E /G "otccorporation\DL other correspondence FA":F cacls Other Correspondence /E /G "otccorporation\Administrator":F cacls Pricebooks /E /G "otccorporation\DL Pricebooks FA":F cacls Pricebooks /E /G "otccorporation\Administrator":F cacls Pricebooks /E /G "otccorporation\DL Pricebooks RO":R cacls Products /E /G "otccorporation\DL Products FA":F cacls Products /E /G "otccorporation\Administrator":F cacls Products /E /G "otccorporation\DL Products RO":R cacls Projects /E /G "otccorporation\DL Projects FA":F cacls Projects /E /G "otccorporation\Administrator":F ) |
Отправлено: 14:53, 04-08-2009 | #4 |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать дык мой скрипт только на папку одного партнера, надо как то сделать чтобы, он на все папкис одинаковыми именами, в данной директории, назначал такие права.
|
|
Отправлено: 15:52, 04-08-2009 | #5 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать ![]() ![]() Поясняю работу скрипта: в переменные Wrk и List (кстати извиняюсь - там остались значения, на которых этот скрипт и тестил) вписывается полный путь к Вашей папке (Workplace кажется) и путь с именем файла списка фирм. Далее в цикле из файла выбирается очередная фирма, от нее выделяется первая буква для раскладывания по каталогам A-B-C-D...W-Z, создается дерево каталогов Буква-Фирма, внутри создается пачка Ваших стандартных каталогов Contracts .. Projects и для них назначаются права по Вашему скрипту. ... из списка выбирается следующая фирма и процесс повторяется до тех пор, пока не будут созданы все подкаталоги для каждой фирмы и для каждой будут назначены права. |
------- Отправлено: 16:32, 04-08-2009 | #6 |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать xcacls это отдельно устанавливаемая программа, которая работает из командной строки, скрипт я проверял свой - работает нормально. Мне просто сохранить Батник нужно, так ведь? я впервые со скриптами такими дело имею )
|
Отправлено: 07:25, 05-08-2009 | #7 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Cоздаешь текстовый файл с расширением *.BAT, например Partners.bat
В него через буфер обмена вставляешь текст, исправляешь строки set Wrk=C:\Temp и set List=C:\Partners.txt на нужные тебе, сохраняешь и запускаешь. После чего пробегаешь по некоторым фирмам и проверяешь назначенные права. |
------- Отправлено: 11:31, 05-08-2009 | #8 |
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Создал файл Partners.txt написал туда "партнеров" на разные буквы начинающихся, создал папку D:/test, кинул в корень D:/ файл script_folders.bat с твоим кодом. изменил set Wrk=D:\test и set List=D:\Partners.txt , Запускаю, на долю секунды появляется черное окно командной строки, но ничего не создается, пробовал убирать cacls, не помогло, тоже самое...
|
Отправлено: 13:03, 05-08-2009 | #9 |
Старожил Сообщения: 426
|
Профиль | Отправить PM | Цитировать Извиняюсь за задержку - была работа.
Чтож, добавляем краткий лог-файл (появится рядом с батником) и запускаем еще раз. Лог-файл прошу выложить сюда. Можно для скорости и во избежание засирания форума (не уверен, что это по правилам форума) связаться по асе: 268808419 @Echo Off SetLocal EnableDelayedExpansion set Wrk=D:\Test set List=D:\Partners.txt set Log=%~dpn0.log if not Exist %List% ( echo Error: List-file not found!>>%Log% exit ) for /F "Tokens=* Delims=" %%P in (%List%) do ( cd /D %Wrk% echo Preparing "%%P" at !CD! (%Wrk%^) >>%Log% Title Preparing "%%P" set Letter=%%P set Letter=!Letter:~0,1! if not exist !Letter! md !Letter! cd !Letter! echo ... enter !CD!>>%Log% if not exist "%%P" md "%%P" cd "%%P" echo ... enter !CD!>>%Log% for %%N in (Contracts,Information,"Other Correspondence",Pricebooks,Products,Projects) do md %%N dir /b /on>>%Log% xcacls Contracts /E /G "otccorporation\DL contracts FA":F >>%Log% xcacls Contracts /E /G "otccorporation\Administrator":F >>%Log% xcacls Contracts /E /G "otccorporation\DL contracts RO":R >>%Log% xcacls Information /E /G "otccorporation\DL Information FA":F >>%Log% xcacls Information /E /G "otccorporation\Administrator":F >>%Log% xcacls Information /E /G "otccorporation\DL Information RO":R >>%Log% xcacls Other Correspondence /E /G "otccorporation\DL other correspondence FA":F >>%Log% xcacls Other Correspondence /E /G "otccorporation\Administrator":F >>%Log% xcacls Pricebooks /E /G "otccorporation\DL Pricebooks FA":F >>%Log% xcacls Pricebooks /E /G "otccorporation\Administrator":F >>%Log% xcacls Pricebooks /E /G "otccorporation\DL Pricebooks RO":R >>%Log% xcacls Products /E /G "otccorporation\DL Products FA":F >>%Log% xcacls Products /E /G "otccorporation\Administrator":F >>%Log% xcacls Products /E /G "otccorporation\DL Products RO":R >>%Log% xcacls Projects /E /G "otccorporation\DL Projects FA":F >>%Log% xcacls Projects /E /G "otccorporation\Administrator":F >>%Log% ) |
------- Отправлено: 17:36, 06-08-2009 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - Как на XP создать загрузочний экран высокой четкости (разрешения) | Homiak | Microsoft Windows 2000/XP | 9 | 29-04-2008 16:18 | |
Копируются ли разрешения при копировании папок на комп вне домена? | Raman | Microsoft Windows NT/2000/2003 | 3 | 29-10-2007 10:23 | |
Доступ - Как группе users дать права на создание общих папок и установку принтеров | Marlboroman | Microsoft Windows 2000/XP | 6 | 12-10-2007 15:14 | |
[Ъ] Разрешения для файлов и папок | Sham | Microsoft Windows NT/2000/2003 | 3 | 03-09-2006 11:26 | |
Разрешения для Перенаправленных папок | Keha | Microsoft Windows NT/2000/2003 | 1 | 26-05-2006 17:23 |
|