icacls пакетний файл декількох каталогів з підказками потрібна допомога


2

Я написав наступний пакетний файл, який виконує велику роботу, поєднуючи всі папки, починаючи з числа 3, і застосовуючи дозволи до папок до будь-якої підпапки 2010 року. Приклад пакетного файлу нижче:

для / D %% f в (D: \ Дані \ 3 *) зробити icacls "%% f \ 2010" / успадкування: r / grant: r "Адміністратори домену" :( OI) (CI) F

Питання : Як я можу вдосконалити цей скрипт, щоб дозволити мені застосувати дозволи до певної папки, розташованої під будь-якою папкою в папках, що починаються з 3?

ось приклад моєї невдалої спроби:

для / D %% f в (D: \ Дані \ 3 *) зробити icacls "%% f * \ specificfolder" / успадкування: r / grant: r "Адміністратори домену" :( OI) (CI) F


зверніть увагу на мій останній рядок коду, повідомлення знімає a \ до *
користувача153521

Чи можете ви навести дерево прикладу каталогу, над яким ви працюєте?
soandos

@soandos Приклад Каталог: D: \ Дані \ 3214 Клієнт \ Облікові записи \ SpecificFolder Ідея полягає в тому, що він буде шукати SpecificFolder у будь-якій папці нижче 3214 "Каталог клієнтів".
користувач153521

Відповіді:


1

З таким деревом каталогів:

D

Дані

31245 Клієнт

будь-яка папка

конкретнапапка

31246 Клієнт

будь-яка папка

конкретнапапка

У наведеному нижче коді буде застосовано дозволи безпеки, які ви вказали для обох каталогів, що називаються "Specific Folder"

@echo off
for /D %%f in ("D:\Data\3*") do for /D %%d in ("%%f\*") do icacls "%%d\specificfolder" /inheritance:r /grant:r "Domain Admins":(OI)(CI)F

ПРИМІТКА. Тут використовується вкладені петлі FOR, які не підтримуються DOS (COMMAND.COM). Це буде добре працювати з системою NT (CMD.EXE).


Дякуємо за вашу відповідь. Команда у вашій відповіді - це те, що я зараз використовую для всього каталогу D: \ Data \ 3 * так, як ви заявили, і це чудово працює. Я помістив астерик у "%% f * \ specificfolder", тому що я хотів би, щоб сценарій прокрутив ще одну директорію (з будь-яким ім'ям, що є причиною для *) і шукав там конкретну папку. Я сподіваюся, що це допомагає, дайте мені знати, якщо мені потрібно пояснити це більш детально.
користувач153521

Оновлено мою оригінальну відповідь, щоб відобразити описану вище структуру каталогу. Якщо ви хочете / потребуєте чогось більшого, дайте мені знати.
TehTechGuy

Ми поруч! Я спробував код, але він скорочує каталог між номером клієнта та назвою через пробіл. Я змінив ваш останній код наступним чином, я просто додав лапки навколо "%% f *": для / D %% f в (D: \ Дані \ 3 *) зробити для / D %% d в ("%% f * ") do icacls" %% d \ specificfolder "Приклад: D: \ Data \ 31245 Smith \ anyfolder \ specificfolder Проблема полягає в тому, що сценарій пробігає всі правильні папки, а потім повторюється, але він відрізає клієнтську каталог перед пробілом, як останній код. Приклад: icacls D: \ Data \ 31245 \ anyfolder \ specificfolder
user153521

Я не можу повторити вашу проблему. Мене хвилює те, що ви говорите, що сценарій повторюється. Ви використовуєте цей код у поєднанні з іншим кодом? Я знову відредагував свою відповідь, а також додав цитату навколо D:\Data\3*порції; однак у моїй системі він спрацював чудово, лише змінивши згадані вами зміни. Можливо, ви маєте на увазі це відлуння? Спробуйте створити новий пакетний файл із двома рядками коду у своїй відповіді, і дайте мені знати, що відбувається. Якщо це не працює, дайте мені повний шлях, який ви використовуєте.
TehTechGuy

Моя вина, сценарій не повторився, я вчора неправильно інтерпретував два аналогічні файли з іменами в тестовому середовищі.
користувач153521
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.