Скрипт для клонирования папки шаблонов с разрешениями и запроса нового имени папки - PullRequest
0 голосов
/ 13 ноября 2018

Могу ли я получить ваше понимание?

У меня есть группа пользователей в AD Call Contract Admin.Мне бы хотелось, чтобы эта группа пользователей могла запускать сценарий, который клонирует папку шаблона (сохраняя разрешения) в новую папку и запрашивает новое имя клиента.

Структура папки будет выглядеть следующим образом:

  • Клиенты
    • Новая папка (папка шаблона) (Права: Администраторы, Администратор контракта, Финансовый администратор)
      • Папка с отчетами (Права доступа: финансовый администратор)

Конечный результат после сценария:

  • Клиенты
    • Компания ABC (разрешения: администраторы, администратор контракта, финансовый администратор)
      • папка отчетов (разрешения: финансовый администратор)

Выше приведен пример структуры папки, где New Folder - это папка шаблона, в которой также есть папка.Я хотел бы, чтобы папки были клонированы с сохраненными разрешениями.

Надеюсь, это понятно, прошу прощения, если это не так.Огромное спасибо за вашу помощь.

Код, который у меня есть для копирования разрешений, выглядит следующим образом:

robocopy / e / copy: DATS "X: \ Template" "X: \Имя новой папки "

attrib -h" Шаблон "

Это то, что у меня есть для клонирования папок, но я здесь потерян.Спасибо

Решение: @echo off

set "src = C: \ Users \ XXX \ Desktop \ template folder"

set / p"dest = Имя клиента ?:"

robocopy / e / copy: DATS% src%% dest%


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

/ copy: указывает свойства файла, которые необходимо скопировать.Ниже приведены допустимые значения для этой опции:

  • D Атрибуты данных A
  • T Метки времени S Список управления доступом NTFS (ACL)
  • O Информация о владельце
  • U Информация аудита
  • Значением по умолчанию для
  • CopyFlags является DAT (данные, атрибуты и метки времени).

1 Ответ

0 голосов
/ 13 ноября 2018

Но это не скрипт.Это команда robocopy.

Есть много параметров robocopy, см. Их файл справки для них .

В частности, зеркало (/ MIR) дерево папок для новогоместо нахождения.

Что касается запроса пользователей, есть несколько способов сделать это.Наиболее прямым является Read-Host командлет.Вы просто записываете это в переменную и передаете как папку.

$FolderPath = Read-Host 'Enter a folder path.'
...