Установка программ с помощью групповых политик в домене Active Directory
15.11.2022
itpro
Active Directory, Windows 10, Windows Server 2019, Групповые политики
комментариев 35
В этой статье мы рассмотрим, как устанавливать программы на компьютеры пользователей домена 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;
Изменение параметров 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 и установит программу с нужными вам параметрами.
Установка приложений с .EXE-инсталляторами средствами GPO
Ни для кого не является секретом то, что в организациях установка приложений на клиентские компьютеры должна быть (или, если честно, то рекомендуется, чтобы была) автоматизированной. Естественно, комплексные продукты, например, такие как Microsoft System Center Configuration Manager, могут превосходно справляться с такой задачей, однако ведь всегда были, есть и будут организации, которые по той или иной причине не приобрели себе такой продукт. Поэтому приходится устанавливать программные продукты с помощью тех же штатных средств операционных систем Windows, и для выполнения такой задачи предпочтительными становятся функциональные возможности групповой политики.
Также все прекрасно знают и о том, что при помощи расширения клиентской стороны Group Policy Software Installation – GPSI, приложения можно развертывать на клиентские машины двумя методами: либо путем публикации только для пользователей, либо при помощи назначения для пользователей или компьютеров.
Для чего нужны ZAP-файлы?
- Запуск приложений с повышенными привилегиями;
- Откат изменений при неудачном процессе установки программного обеспечения;
- Обнаружение повреждения процесса инсталляции и последующее восстановление данного процесса;
- Установка компонентов программного обеспечения при первом обращении к последнему;
- Использование и внедрение файлов трансформации.
- FriendlyName – то есть, это имя, которое будет отображаться в компоненте панели управления «Программы и компоненты»;
- SetupCommand – здесь определяется путь к файлу установки приложения. Естественно, при необходимости вы можете указать как путь UNC, так и использовать сопоставленный диск. Также, если приложение можно устанавливать с дополнительными параметрами, эти параметры следует указывать после пути установки.
- DisplayVersion = 2.13.1.5. Как вы понимаете, этот параметр отвечает за отображаемую версию программного обеспечения;
- Publisher – название компании, являющейся производителем приложения. Это название будет отображено в компоненте панели управления «Программы и компоненты», а также в самом расширении клиентской стороны «Установка программ»;
- URL – естественно, это адрес в сети Интернет, предназначенный для получения дополнительной информации о приложении.
Ограничения ZAP-файлов
Как я уже успел упомянуть, в отличие от установочных пакетов msi, приложения, развёртываемые средствами zap-файлов, нельзя назначать компьютерам или пользователям. Также стоит отметить, что при установке приложения текущим методом запускается стандартная программа установки. Другими словами, помимо добавляемых параметров, при помощи каких-либо дополнительных параметров этого файла вы не можете настроить процесс установки программного обеспечения. Еще одним ограничением является тот факт, что приложение не может быть установлено от имени учетной записи администратора, что может быть в некоторых случаях крайне неудобно. То есть приложения всегда устанавливаются локальным администратором.
При создании ZAP-файлов вы обязательно должны принять к сведению следующие моменты (о некоторых из них я уже говорил несколькими строками выше):
- Во-первых, ввиду того, что при помощи выполнения ZAP-файла просто запускается инсталляционная программа, как я уже говорил, данное средство не позволяет выполнять инсталляционный процесс с повышенными правами, что можно реализовать при помощи пакетов MSI. Следовательно, если приложение во время своей установки запросит повышение прав, его смогут проинсталлировать только те пользователи, для которых явно прописано такое разрешение;
- Во-вторых, ввиду того, что ZAP-файлы являются текстовыми документами, при сохранении такого файла можно случайно создать файл с расширением .zap.txt, что, по вполне понятным причинам, не сможет корректно отработать. Другими словами, убедитесь, что файл будет сохранен с правильным расширением;
- В-третьих, если у вас в сети есть компьютеры с 64-разрядными операционными системами, вам следует обязательно протестировать процесс установки и работы 32-разрядных приложений на таких операционных системах. Это очень важный этап, так как много 32-разрядных приложений, развертываемых при помощи ZAP-файлов, могут сбоить во время своей установки;
- И в-четвертых, если при создании ZAP-файла с 32-разрядным программным обеспечением вы не измените его поведение, оно не будет отображаться в компоненте панели управления «Программы и компоненты» под 64-разрядными операционными системами.
Создание ZAP-файла
- Silent – выполнение тихой установки, то есть без участия пользователя;
- Folder – папка назначения. Если она при помощи этого параметра не указана, то в таком случае будет использоваться старая папка IrfanView. Если же таковая отсутствует, то используется папка «Program Files\IrfanView»;
- Desktop – создает ярлык на рабочем столе; 0 = no, 1 = yes (по умолчанию: 0);
- Thumbs – создает ярлык для режима миниатюр; 0 = no, 1 = yes (по умолчанию: 0);
- Group – создает группу в меню «Пуск»; 0 = no, 1 = yes (по умолчанию: 0);
- Allusers – ярлыки на рабочем столе/в меню «Пуск» для пользователей; 0 = для текущего пользователя, 1 = для всех;
- Assoc – позволяет установить файловые ассоциации; 0 = не устанавливать, 1 = только изображения, 2 = выбрать все (по умолчанию: 0);
- Assocallusers – если используется этот параметр, то файловые ассоциации устанавливаются для всех пользователей (работает только в Windows XP);
- Ini – если используется, устанавливает пользовательскую папку для INI файла (допустимы системные переменные).
Развертывание Irfan View при помощи сгенерированного ранее ZAP-файла
- Создается новый объект групповой политики (естественно, при желании вы можете воспользоваться также и любым из существующих объектов GPO), пусть он называется «ZAP Files Publication». Он связывается либо с конкретным подразделением, в которое входят учетные записи пользователей, либо с уровнем всего домена, и из контекстного меню данного объекта следует выбрать соответствующую команду, предназначенную для открытия редактора управления групповыми политиками;
- После этого, уже находясь в оснастке «Group Policy Management Editor», нам необходимо развернуть узел User Configuration\Policies\Software Settings, затем перейти к узлу «Software Installation». Чтобы приложение нормально опубликовалось, следует перейти к настройкам данного узла. Другими словами, из контекстного меню данного узла выбираем команду «Properties»;
- Здесь, как я уже сказал, чтобы мы смогли без проблем опубликовать наше приложение, нам следует в свойствах этого расширения клиентской стороны указать путь к точке распространения, то есть «\\НАШСЕРВЕР\Install». Помимо этого, на вкладке «Advanced» обязательно необходимо установить флажок на опции «Make 32-bit X86 down-level (ZAP) applications available to Win64 machines». Этих настроек для нас достаточно, сохраняем все внесенные изменения;
Рис. 4. Оснастка Group Policy Management Editor после создания пакета
Готово, осталось лишь проверить все внесенные изменения. Сейчас можно даже на текущей машине обновить параметры политики. Сделаем это принудительно, то есть вместе с командой Gpupdate укажем параметры /force /boor /logoff.
Осталось только проинсталлировать опубликованный пакет. Для этого мы заходим в панель управления и переходим к компоненту «Programs and Features». Затем для того, чтобы попасть к расположению, откуда будет проинсталлирован опубликованный продукт, следует перейти по ссылке «Install a program from the network».
Как видите на следующей иллюстрации, здесь можно найти наш Irfan View.
Рис. 5. Приложение, доступное для инсталляции
Как установить exe через gpo
Добрый вечер, коллеги!
Знаю, этот вопрос поднимался неоднократно и тревожит многие умы) Есть некоторое ПО (например qip, k-lite kodeck и т.д.) которое необходимо установить на более чем 100 машин, msi пакетов у них нет,всякие там перепаковщики exe to msi не помогают, все равно все криво, а софт этот нужен. Знаю что как то можно через сценарии автозагрузки, но как именно так и не понял. Может кто-нибудь доходчиво объяснить как это можно сделать(если можно) и главное возможно ли потом таким же сценарием все это удалить. Сразу скажу что SMS нет, и не предвидится.
Ответы
1) Берем программу которую нужно установить и гуглим на тему "%Programm_name% silent install" или "%Programm_name% unattended install"
те же qip, k-lite codek pack гуглятся на раз
2) Пишем скрипт копирующий дистр программы на клиентскую тачку и вызывающий установку в соответствии с теми параметрами что были нагуглены в пункте №1
3) Помещаем данный скрипт в политику как startup script. Цепляем политику на нужные компы.
Ну соответственно это все лучше 10 раз протестировать прежде чем пускать разливаться. Также рекомендую в скрипте выставить условие проверки — была ли установка выполнена успешно и маркировать те компы на которых все прошло удачно и в начале скрипта предусмотреть условие — типа если маркер есть, то скрипт сразу завершается.
По вопросу удаления гуглим что нить типа "%Programm_name% silent uninstall" если такого не было найдено до этого.
Как установить exe через gpo
![]()
- ProfileText
- Sign in
Answered by:
Question
Здравствуйте. Нужно установить exe через GPO. MSI нет. Сделать не получается.
Как будет выглядеть алгоритм ?
1. Скрипт на повершеле в GPO.
2. Сам скрипт. Копирую на клиента exe. -> Запускаю exe с ключами. Всё. В самом начале скрипта правда еще добавляю проверку наверно на путь в программ файлс, чтоб скрипт не выполнял установку exe каждый ребут.
Всё верно или что-то упустил ? Я верно понимаю, что после Copy-Item, мне не нужно делать перед выполнением запуска exe проверку, скачен ли файл ? И после его запускать, так как пока Copy-Item не закончиться до конца, следующая итерация не пойдет ?
Answers
зависит от того как скрипт напишите
по умолчанию пош выводит ошибки (например если файла нет), а потом идет дальше но вы это можете изменить в начале скрипта добавив $erroractionprefference = "stop".
но ваше утверждение справедливо (как правило) в плане того что команды выполняютсяпо очереди
The opinion expressed by me is not an official position of Microsoft
- Marked as answer by Kazun Editor Wednesday, December 26, 2018 8:20 AM
All replies
зависит от того как скрипт напишите
по умолчанию пош выводит ошибки (например если файла нет), а потом идет дальше но вы это можете изменить в начале скрипта добавив $erroractionprefference = "stop".
но ваше утверждение справедливо (как правило) в плане того что команды выполняютсяпо очереди
The opinion expressed by me is not an official position of Microsoft
- Marked as answer by Kazun Editor Wednesday, December 26, 2018 8:20 AM
зависит от того как скрипт напишите
по умолчанию пош выводит ошибки (например если файла нет), а потом идет дальше но вы это можете изменить в начале скрипта добавив $erroractionprefference = "stop".
но ваше утверждение справедливо (как правило) в плане того что команды выполняютсяпо очереди
The opinion expressed by me is not an official position of Microsoft
вы сильно верите в меня, и почему-то слабо верите в себя
ваш алгоритм будет работать
The opinion expressed by me is not an official position of Microsoft
На мой взгляд установку программ (не .msi) удобнее делать не через скрипты входа, а посредством GPP создавать задание на компьютерах с однократным исполнением.
Это как ?
The opinion expressed by me is not an official position of Microsoft
- Edited by Vector BCO Moderator Saturday, December 22, 2018 11:12 AM
Вектор, у него синдром утёнка, шли его нахер в свободное плавание. он задрал уже, мы чтоли за него думать будем?
с наступающим нг, рождеством и все такое.
попроси у деда мороза немножко уверенности в себе, я точно знаю — он не откажет.
Будут НОРМАЛЬНЫЕ вопросы — приходи. Сообщество поможет, но оно не должно думать за тебя.
На мой взгляд установку программ (не .msi) удобнее делать не через скрипты входа, а посредством GPP создавать задание на компьютерах с однократным исполнением.
Это как ?
предположу что речь идет про шедульную задачу в которой вы можете указать exe, параметры и тригерыThe opinion expressed by me is not an official position of Microsoft
Правильное предположение. — На мой взгляд для установки ПО очень удобно использовать тип задания под названием "Немедленная задача (Windows 7 и выше)".
Если нет SCCM, то таким способом можно достаточно оперативно (при очередном цикле применения групповых политик) установить ПО не дожидаясь перезагрузки ПК.