Копирование файлов и папок на компьютеры пользователей через объект групповой политики
Вы можете использовать групповые политики для копирования определенных файлов и папок на компьютеры пользователей в домене Active Directory. Вы можете размещать файлы на рабочем столе, в определенной папке профиля пользователя или в любой другой папке на локальном диске. С помощью GPO вы можете автоматически копировать и обновлять различные файлы конфигурации, файлы INI, исполняемые файлы приложений (EXE), библиотеки DLL или сценарии из общего репозитория.
Копирование файлов с использованием настроек групповой политики
Например, я хочу скопировать два файла (
app.exeи
settings.xml) на рабочие столы некоторых пользователей домена Active Directory.
Создайте общую папку для хранения исходных файлов, которые вы хотите скопировать на компьютеры пользователей. Это может быть общая папка SMB на файловом сервере или каталог SYSVOL на контроллере домена (эта папка автоматически реплицируется между всеми контроллерами домена в домене с помощью DFS, ее удобно использовать, так как она помогает снизить нагрузку на WAN). ссылки). Я поместил файлы в папку Sysvol.
\\active-directory.ru\SYSVOL\active-directory.ru\scripts\CorpApp
. Убедитесь, что группа Прошедшие проверку имеет разрешения на чтение этой папки.
Создайте новую группу безопасности Active Directory (CorpAPPUsers) с помощью оснастки «Пользователи и компьютеры Active Directory» (
dsa.msc). Вы можете создать группу с помощью этого командлета PowerShell:
New-ADGroup CorpAPPUsers -path 'OU=Groups,OU=DE,dc=active-directory,DC=com' -GroupScope Global -PassThru -VerboseДобавьте пользователей в группу, на рабочий стол которых вы хотите автоматически копировать файлы через GPO:
Add-AdGroupMember -Identity CorpAPPUsers -Members asmith, bmuller, tweberОткройте консоль управления групповыми политиками (
gpmc.msc);
Создайте новый объект групповой политики (CopyCorpApp) и свяжите его с подразделением, содержащим компьютеры пользователей;
Отредактируйте настройки GPO;
-
Разверните следующий раздел «Настройки групповой политики»: Пользователь Конфигурация -> Настройки -> Настройки Windows -> Файлы;
Если вам необходимо копировать файлы на компьютеры независимо от вошедших в систему пользователей, лучше использовать аналогичную политику в разделе «Конфигурация компьютера» объекта групповой политики.
Выберите Новый -> Файл;
Укажите исходный файл в общей папке и целевой путь на компьютере, на который вы хотите скопировать файл. Если указанный путь не существует, он будет создан автоматически. Обязательно укажите полное имя целевого файла (если вы просто укажете целевой каталог, при копировании файла вы получите сообщение об ошибке «доступ запрещен»).
Здесь вы можете выбрать конкретное имя файла или скопировать все файлы из исходного каталога сразу, указав подстановочный знак.
*Для копирования файлов с помощью GPO доступны 4 действия:
Создать - файл копируется в целевой каталог, только если он там не существует;
Заменить > - целевой файл на компьютере пользователя всегда заменяется исходным файлом. Если исходный файл большой, он будет копироваться при каждом обновлении объекта групповой политики, что может вызвать высокую нагрузку на сеть. Если вы хотите заменить файл только один раз, включите параметр «Применить один раз и не применять повторно» на вкладке «Общие»;
Обновить (политика по умолчанию) - если файл уже существует и исходный и целевой файлы разные, он не заменяется исходным файлом (будут заменены только атрибуты). Если файл не существует, он будет скопирован;
Удалить - удалить целевой файл.Вы можете выбрать определенную папку на компьютере в качестве целевого каталога или использовать переменные среды. Чтобы скопировать файлы на рабочий стол текущего пользователя, используйте
%DesktopDir%Вы можете просмотреть полный список переменных среды, доступных в GPP, нажав F3.
Ниже приведен список переменных среды, которые можно использовать в качестве папок назначения при копировании файлов с помощью объекта групповой политики:
- %AppDataDir%
Папка данных приложения текущего пользователя
- %CommonAppdataDir%
Папка данных приложения всех пользователей
- %CommonDesktopDir%
Рабочий стол всех пользователей
- %CommonProgramsDir%
Каталог программ всех пользователей.
- %CommonStartMenuDir%
Папка меню «Пуск» всех пользователей
- %CommonStartUpDir%
Каталог запуска для всех пользователей
- %ComputerName%
NetBIOS-имя компьютера
- %DesktopDir%
Текущий пользователь Рабочий стол
- %DomainName%
Текущий доменное имя
- %LocalTime%
Местное компьютерное время
- %LogonDomain%
Домен текущего пользователя
- %LogonServer%
Имя контроллера домена, на котором проходит аутентификация пользователя.
- %LogonUser%
Текущее имя пользователя
- %NetPlacesDir%
Каталог пользователя «Мое сетевое окружение»
- %ProgramFilesDir%
Каталог программных файлов
- %ProgramsDir%
Каталог пользовательских программ
- %RecentDocumentsDir%
Каталог последних документов пользователя
- %SendToDir%
Каталог отправки пользователя
- %StartMenuDir%
Стартовое меню текущего пользователя
- %StartUpDir%
Папка автозагрузки текущего пользователя
- %SystemDir%
Каталог Windows
- %SystemDrive%
Диск, на котором установлена операционная система
- %TempDir%
Пользовательская временная папка
- %WindowsDir%
Каталог Windows
Чтобы скопировать файлы на рабочие столы конкретных пользователей, откройте вкладку Общие в настройках политики, включите параметр Таргетинг на уровне элементов и нажмите Таргетинг . ;
В следующем окне вы можете выбрать дополнительные параметры применения объекта групповой политики. В моем случае я хотел бы ограничить политику только членами группы CorpAPPUsers. Для этого нажмите Новый элемент -> Группа безопасности и укажите группу пользователей домена;
Поскольку мы связали объект групповой политики с подразделением, содержащим компьютерные объекты (а не учетные записи пользователей), вам необходимо включить режим обратной связи объекта групповой политики. Включите параметр Настроить режим обратной обработки групповой политики пользователя=Объединить в Конфигурация компьютера -> Политики -> Административные шаблоны -> Система -> Групповая политика;
Затем обновите параметры групповой политики на клиентских компьютерах (
gpupdate /forceили выйдите из системы и войдите снова) и убедитесь, что два файла были автоматически скопированы на рабочий стол пользователя.
Таким образом, вы можете копировать на компьютеры пользователей скрипты, исполняемые файлы приложений или системные инструменты (PsTools, iperf, Portqry и т. д.). Вы можете скопировать файл в Program Files и разместить его ярлык на рабочем столе через GPO.
Если вам нужно скопировать каталог на компьютер пользователя, вам необходимо использовать элемент групповой политики из раздела Конфигурация компьютера (пользователя) -> Настройки -> Настройки Windows -> Папки. Эта опция позволяет вам создать каталог на целевом компьютере. Затем вы можете скопировать исходные файлы в этот каталог, как описано выше.
Если файлы не копируются на компьютеры пользователей, вы можете использовать инструмент gpresult.exe, чтобы выяснить, почему групповая политика не применяется. Чтобы получать подробные журналы операций копирования файлов GPO, вы можете включить журнал в разделе «Конфигурация компьютера» -> «Политики» -> «Административные шаблоны» -> «Система» -> «Групповая политика» -> «Журналирование и отслеживание». Включите параметр Настроить ведение журнала и отслеживание настроек файлов и выберите режим Информация, предупреждения и ошибки в настройках политики.
Теперь все события и ошибки, связанные с копированием файлов через GPO на клиентах, можно отслеживать в Просмотре событий -> Журнал приложений. Включите фильтр по источнику Файлы групповой политики.
В моем случае на пользовательском компьютере при копировании файлов через GPO появилась ошибка Event ID 4098:
The user '%CommonDesktopDir%' preference item in the 'CopyCorpApp {GPO_GUID}' Group Policy Object did not apply because it failed with error code '0x80070005 Access is denied.' This error was suppressed.Эта проблема была решена путем предоставления разрешения NTFS на чтение файлов в исходном каталоге группе Прошедшие проверку.
Как скопировать папки и файлы с помощью сценария запуска GPO?
Обратите внимание, что настройки групповой политики не позволяют копировать весь каталог со всеми дочерними подпапками и файлами. Если вам необходимо скопировать папку с большим количеством файлов или вы хотите, чтобы содержимое целевых пользовательских папок всегда обновлялось при обновлении любого файла в источнике, вы можете создать простой сценарий входа в систему и запустить его через объект групповой политики. .
Давайте создадим скрипт запуска GPO для копирования всех новых (и измененных) файлов из исходного каталога на компьютеры пользователей:
Создайте пакетный файл в Sysvol: CopyCorpApp.bat:
IF EXIST "C:\CorpApp" EXIT MD "C:\CorpApp" xcopy \\fs01\Sources\CorpApp\*.* C:\CorpApp /e /y /k /r /d /iВ некоторых случаях для копирования файлов предпочтительнее использовать более мощную команду robocopy.
Этот скрипт скопирует всю структуру каталогов и все файлы с атрибутами. Копируются только новые или измененные файлы. Это означает, что каждый раз при запуске скрипта, если в исходном каталоге нет изменений, команда xcopy не будет перезаписывать файлы.
Создайте новый объект групповой политики (как описано выше) и назначьте его подразделению с компьютерами пользователей;
Разверните Конфигурация компьютера -> Политики -> Настройки Windows -> Сценарии (запуск/завершение работы). Выберите Запуск;
Нажмите кнопку Добавить и укажите UNC-путь к вашему сценарию в SysVol;
Перезагрузите компьютер пользователя и убедитесь, что исходная папка успешно скопирована.












