Копирование файлов и папок через групповую политику
Доброго времени суток! Многоуважаемые читатели и просто гости IT портала Pyatilistnik.org. Рад, что вы вновь на страницах моего ресурса. В прошлый раз мы с вами рассмотрели, что делать когда у вас в системе отсутствовала библиотека VCRUNTIME140.dll. Сегодня я хочу поговорить, еще об одной вещи которая можете оптимизировать работу пользователей и сохранить много времени системному администратору. Сегодня я покажу, как скопировать файл или папку с помощью групповой политики, автоматизировав данный процесс.
Способы копирования файлов и папок
Существует большое количество методов, которые позволяют вам решить задачу по перемещению файлов, я могу выделить вот такие:
- Интерактивное, ручное- это когда вы сами копируется, что нужно в нужное место в графическом интерфейсе.
- С помощью скриптов, где используются утилиты Robocopy или Xcopy
- Через специальные файловые менеджеры, например Total Commander, Far
- Через групповую политику в окружении домена Active Directory, данный метод я и хочу осветить в данной публикации.
Постановка задачи
И так есть всем известная программа 1С. Бывают случаи, что необходимо пользователю производить очистку локального кэша. Для этого был написан специальный скрипт. Необходимо его скопировать нужным пользователям на рабочий стол, чтобы они могли его выполнять в нужный момент. Если людей 1 или два, то проблем нет, если же их сотни, да и еще добавляются новые, то правильный вариант, это автоматизация. И глупо было бы не использовать функционал групповых политик, раз уж мы в домене Active Directory.
Создание политики копирования на рабочий стол
Первым делом у вас должна быть сетевая папка из которой будет производится копирование файла или каталога. В моем случае, это сетевая шара \\DC01\share\ClearCache1C.js, где лежит нужный мне скрипт очистки кэша 1С. Вот этот файл мне нужно поместить на рабочий стол пользователя или компьютера. Почему может потребоваться положить файл на общий рабочий стол компьютера. Очень часто бывает, что есть компьютеры, где нет постоянного пользователя, там сотрудники могут работать по сменам и пересаживаться на удобное для них место, и проще применить политику один раз на компьютер, чем таскать за собой по всем, но тут уже все зависит от задачи, лично я применяю ее для пользователя, для меня, это более безопасно.
Далее вам необходимо создать отдельную группу безопасности, в которую вы будите помещать пользователей и компьютеры, к которым нужно будет применять политику, это делается для фильтрации. Напоминаю, что все это делается в оснастке Active Directory - Пользователи и компьютеры.
Открываем редактор групповой политики и создаем там новую, я назвал ее "Копирование файла на рабочий стол". Давайте ее изменим, задав нужные параметры.
Тут как вы знаете есть политики для компьютеров и отдельные для пользователей, все зависит от вашей задачи по распространению. В моем примере я на первом этапе применю политику на сотрудника, по имени Геннадий Барбоскин. Переходим по пути:
Щелкаем тут правым кликом и из контекстного меню выбираем пункт создать файл.
Тут у вас будет три действия:
- Во первых вам нужно понять, что будет с файлом. В пункте действие, вам нужно указать, будет ли он создан, обновлен, заменен или удален.
- После того, как вы определились с действием, вы должны указать исходный путь, откуда нужно скопировать файл, я в примере указал сетевую шару. Обратите в пути прописывается все полностью до файла с расширением.
- И конечно же задаем конечный путь, тут можно указать как обычный путь в виде C:\Temp, либо же как у меня, с использованием переменных сред Windows , где %HOMEPATH% означает домашний каталог пользователя и полный путь %HOMEPATH%\Desktop\, как раз и приведет на рабочий стол, независимо от логина пользователя. Так же пишем в пути еще и полное имя файла и его расширение, обратите внимание, что если у вас файл источника на английском языке, то это не мешает его на конечном пути сделать на русском, для удобства отображения.
В списке файлов у вас будет задание имеющее порядковый номер 1, которое будет производить копирование файла из сетевой папки на рабочий стол пользователя.
Так же хочу обратить ваше внимание на вкладку "общие параметры", тут вы найдете вот такие пункты:
- Остановить обработку элементов в этом расширении при возникновении ошибки
- Выполнять в контексте безопасности вошедшего пользователя (параметр политики пользователя)
- Удалить этот элемент, когда он более не применяется
- Применить один раз и не применять повторно
- Нацеливание на уровень элемента
Далее вам необходимо применить данную политику к нужной группе, для этого в редакторе политик, выберите нужную и в поле "Фильтры безопасности" нажмите кнопку "Добавить". В открывшемся окне найдите вашу группу, у меня это "Очистка кэша 1С".
Когда вы добавили нужную группу ф фильтр, необходимо удалить из нее группу "Прошедшие проверку".
Если вы делаете политику на пользователя, то политика не применится, так как ее не сможет прочитать компьютер, для этого вам необходимо на вкладке "Делегирование" добавить группу содержащую нужные компьютеры или же группу "Компьютеры домена"
Далее задайте уровень чтения, этого будет достаточно.
Пробуем применить политику. Перелогинимся пользователем Барбоскин Геннадий на рабочей станции и проверим, с копировался ли файл на рабочий стол.
загружаемся и видим, что на рабочем столе отображается скопированный скрипт из сетевой шару, пробую его запустить. Как видим, все отлично отрабатывает. Теперь пользователю в нужный момент нужно просто его выполнить и его проблема будет решена.
Теперь покажу небольшие нюансы копирования файлов на компьютер, например на рабочий стол. Путь политики там такой же:
Указываю, что также хочу пользователю скопировать файл на рабочий стол и беру для этого все тот же путь с переменной %USERPROFILE%\Desktop\Очистка кэша 1С.js\
Не забываем отфильтровать политику, удалив из нее авторизованные пользователи и добавив нужную группу, в моем примере, это "Компьютеры домена".
В итоге у вас политика отработает, но вот на рабочий стол у вас файл скопирован не будет, точнее он скопируется на рабочий стол общего профиля, из которого создаются новые рабочие столы. Вы его найдете по пути C:\Users\Default\Desktop, заведомо до этого включив скрытые файлы в Windows.
Чтобы это обойти, вам нужно в настройках политики изменить путь на C:\Users\Public\Desktop\Очистка кэша 1С.js (C:\Users\Public\Desktop\ соответствует пути C:\Пользователи\Общие\Общий рабочий стол\)
Пробуем опять перезагрузиться и видим, что все отлично скопировалось. Вот так вот средствами групповой политики вы можете автоматизировать данный процесс. На этом пост можно считать полностью завершенным, с вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Данный способ подходит только для файлов. Как выполнить копирование папки с содержимым через GPO?
Утилита Robocopy
Требуется распространить файл конфигурации Firefox, программа соответственно может находится в соответствии с разрядностью ОС. Есть ли какие-либо дополнительные галочки, что бы решить проблему и не создавать лишние каталоги (про командный файл я знаю, это другой способ)
Можно сделать сценарий Powershell, с проверкой разрядности. Либо вы можете создать две политики, но каждую фильтровать WMI фильтрами, в зависимости от архитектуры
Есть ли возможность копирования в зависимости от ОС 32/64
Можно использовать переменную среды windows %ProgramFiles% и %ProgramFiles(x86)% например, если тебе нужно какой-нибудь конфиг у ПО поправить всем пользователям.