В этой статье мы рассмотрим, как устанавливать программы на компьютеры пользователей домена Active Directory с помощью групповых политик.
Встроенный функционал GPO Windows позволяет устанавливать только программы, распространяющееся в виде MSI или ZAP пакетов. Другие виды программ придется устанавливать альтернативными средствами: с помощью SCCM, через логон скрипты, копирование файлов программы на компьютеры с помощью GPO, запуском разовых скриптов и т.д.
Получите установочный MSI пакет программы
Рассмотрим, как установить MSI пакет программы на компьютеры пользователей с помощью групповых политик Windows на примере клиента Microsoft Teams.
Скачайте MSI пакет с клиентом Teams (http://aka.ms/teams64bitmsi) и скопируйте файл Teams_windows_x64.msi в каталог SYSVOL на контроллере домена (
\\winitpro.ru\SysVol\winitpro.ru\scripts
).
Далеко не все программы предоставляются в виде MSI файла. Чаще всего разработчики отдают их в виде исполняемых EXE файлов, которые не подходят для распространения через GPO. Но есть два способа, которые в некоторых случаях получить установочный MSI программы:
- Некоторые установщики при запуске распаковывают свои файлы в каталог %temp%. Поэтому при установке программы (просто сверните окно установки) попробуйте открыть этот каталог и найти в нем установочный MSI файл.
- Другой способ получения MSI файла – попробовать открыть установочный EXE файл с помощью архиватора 7-Zip. Запустите 7-Zip и в меню выберите File -> 7ZIP –> Open Archive. 7ZIP попробует открыть EXE файл в как архив. В нашем случае из EXE файла с дистрибутивом Acrobat Reader получилось извлечь MSI и MST файлы, которые готовы для установки через групповые политики Windows.
Создаем GPO для установки программы на компьютеры пользователей
Теперь нужно создать новую политику в домене для установки вашего ПО.
- Откройте консоль управления доменными GPO (
gpmc.msc
); - Создайте новую GPO (CorpInstallTeams)и назначьте ее на OU с компьютерами, на которые нужно выполнить установку (Create a GPO in this domain, and link it here);
- Откройте политику и перейдите в раздел Computer Configuration -> Policies -> Software Settings -> Software installation;
- Выберите пункт меню New -> Package;
- Выберите ваш MSI файл, который хранится в каталоге SYSVOL;
- Выберите опцию “Advanced” и нажмите OK;Assigned – программы устаналиваются при входе пользователя, Published – публикуюция на компьютерах и могут быть установлены пользователями из Add/Remove Programs.
- В открывшемся окне можно настроить дополнительные параметры MSI пакета. Я просто изменю отображаемое имя с Teams Machine-Wide Installer на Microsoft Teams Client;
- На вкладке Deployment нажмите кнопку Advanced и включите опцию Ignore language when deploying this package (это позволит игнорировать язык Windows на компьютерах клиентов);
- Перезагрузите компьютер для обновления настроек GPO и при следующей загрузке компьютера будет выполнена установка программы. Она появится в списке установленных программ Windows. Для анализа событий установки включите фильтр по источнику Application Management Group в разделе System Event Viewer-а.В Windows 11 уже встроенный чат клиент Teams, но это не полноценный клиент Microsoft Teams.
- Можно показывать детальный процесс применения политики на компьютере. Для этого включите параметр Display highly detailed status messages в Computer Configuration -> Policies -> Administrative Templates -> System. Теперь при загрузке Windows будет отображаться все выполняемые в фоне процессы. При установке программ через GPO появится надпись Installing managed software AppName;
Изменение параметров MSI пакета для установки через GPO
В стандартном интерфейсе GPO вы не можете указать определенные ключи для установочных MSI пакетов. Что очень неудобно. Например, при установке антивируса вам нужно указать адрес сервера управления. Или при при установке Teams из командой строки с помощью msiexec можно отключить автозапуск клиент MSTeams и скрыть его из списка установленных программ (локальный администратор не сможет удалить клиент Teams). Для этого используется команда:
msiexec /i Teams_windows_x64.msi OPTIONS="noAutoStart=true" ALLUSERS=0
Как добавить опции установки в MSI пакет? Для этого используются файлы преобразования MST. Этот тип файлов позволяет изменить стандартные настройки MSI пакета и использовать ваш сценарий установки.
Для создания файла модификации MST для MSI пакетов можно использовать утилиту ORCA (входит в состав Windows Installer SDK).
Откройте ваш MSI пакет с помощью Orca.
Создайте New Transformation и задайте ваши кастомные параметры MSI пакета в разделе Property. В моем случае для клиента Teams я изменю:
- noAutoStart на
True
- ALLUSERS на
0
Выберите Transform -> GenerateTransform и сохраните изменения в файл с расширением MST (teams_mod.mst). Скопируйте файла в каталог SYSVOL
Теперь нужно удалить предыдущее правило для установки MSI пакета в GPO (т.к. вы можете добавить MST с модификациями пакет только при создании правила установки программы.
Выберите All –> Task -> Remove
Создайте новое правило установки программы, опять выберите msi файл в каталоге SYSVOL и перейдите на вкладку Modification. Нажмите кнопку Add. Выберите созданный ранее MST файл.
Теперь во время установки MSI пакета через GPO к нему автоматически применится файл модификаций MST и установит программу с нужными вам параметрами.
Основные недостатки метода установки MSI программ через GPO:
- Поддерживаются только MSI и ZAP установщики;
- Нельзя запланировать установку программы на определенное время. Одновременная установка программы на множестве компьютеров (обычно это происходит утром при включении компьютеров) может вызвать нагрузку на сеть и DC. В этом случае лучше использовать, например, SCCM. Используя окна обслуживания (maintenance) или настройки WOL (Wake On LAN);
- Нельзя изменить порядок установки программ в одной политике. При добавлении нового установочно пакета в GPO, оно устанавливается последним.
- Нельзя получить отчет об успешности или ошибках установки программы на компьютерах.