MSI не устанавливается через GPO — причины и решение
Почему MSI не устанавливается через GPO: проверьте gpresult, права компьютерной учётной записи на UNC-шаре, ожидание сети, политики Windows Installer и логи.
Почему MSI пакеты не устанавливаются через GPO в домене?
Я развертываю MSI пакеты через Конфигурация компьютера -> Политики -> Параметры программного обеспечения -> Установка программ. Сетевые пути указаны верно, и компьютеры домена имеют доступ к сетевой папке с правами на чтение. В логах установки MSI видны только начало и конец процесса без ошибок, но приложения не появляются на компьютерах. В чем может быть проблема и как это исправить?
MSI не устанавливается через GPO чаще всего из‑за проблем с доступом учётной записи компьютера к UNC‑пути, фильтрации GPO или из‑за блокирующих политик Windows Installer; иногда пакет просто пропускается потому, что установка выполняется до доступности сети. Проверьте применение политики (gpresult/rsop), права чтения для «Domain Computers» на шаре, включите ожидание сети при загрузке и включите подробное логирование — эти шаги почти всегда показывают причину и помогают исправить ситуацию. Ниже — подробный план действий и чек‑лист.
Содержание
- MSI не устанавливается через GPO — быстрый диагноз
- Проверка применения GPO и фильтрации (gpresult, rsop)
- Права доступа и UNC‑путь: компьютерный аккаунт должен иметь Read
- Политики Windows Installer и блокировки MSI (AppLocker, SRP)
- Сетевое ожидание, порядок запуска и архитектура пакетов (x86/x64, WMI)
- Логирование, диагностика и пошаговый чек‑лист исправления
- Источники
- Заключение
MSI не устанавливается через GPO — быстрый диагноз
Чаще всего, когда msi не устанавливается через GPO, причина — не «битый» пакет и не мистический баг Windows, а простая инфраструктурная проблема: политика либо не применяется к компьютеру, либо компьютер не может прочитать MSI в момент установки, либо политика Windows Installer блокирует инсталляцию. По моему опыту, 80% случаев решаются проверкой прав на шаре и включением логирования. Более подробный разбор типичных ошибок и где смотреть логи есть в статье с примерами и регистрами ошибок: Установка программ с помощью групповых политик в домене (winitpro).
Коротко — что именно нужно проверить в первую очередь:
- Политика действительно применяется к компьютеру (а не только к пользователю).
- Компьютерная учётная запись имеет доступ к UNC‑пути с MSI (share + NTFS).
- Установка выполняется в момент, когда сеть доступна (стартап/логон).
- Нет GPO‑ограничений Windows Installer, AppLocker или SRP, блокирующих MSI.
- Пакет соответствует архитектуре ОС клиента (x86/x64) и поддерживает тихую установку, если нужен silent.
Проверка применения GPO и фильтрации (gpresult, rsop)
Первый шаг — убедиться, что GPO вообще доходит до компьютера.
Команды и быстрые проверки:
- На клиенте запустите:
gpresult /r
или для детального вывода:
gpresult /z
Можно получить HTML‑отчёт:
gpresult /h C:\gpresult.html - Запустите
rsop.mscлокально, чтобы увидеть результат конечной политики. - В GPMC проверьте Scope → Security Filtering и Delegation: если из Security Filtering удаляли “Authenticated Users”, то компьютера могут лишиться прав на чтение/применение GPO.
Если в gpresult вы видите «Filtering: Denied», причина — либо Security Filtering (нет нужной группы с Apply/Read), либо WMI‑фильтр. Пример обсуждения таких ошибок и рекомендаций по ожиданию сети — в обсуждении на Habr: Почему не устанавливается .msi пакет через GPO?.
Как исправить фильтрацию:
- В GPMC → Scope → Security Filtering добавьте
Domain ComputersилиAuthenticated Users. - Затем Delegation → Advanced → для
Domain Computersвключите разрешенияReadиApply group policy. - Если используете нестандартную группу компьютеров, дайте именно ей права Read + Apply.
После правок выполните на клиенте gpupdate /force и перезагрузку — и затем снова gpresult /r.
Права доступа и UNC‑путь: компьютерный аккаунт должен иметь Read
Типичная ситуация: пользователи видят файл по сетевому пути, а компьютерная учётка — нет. Установка из Computer Configuration выполняется от имени Local System (то есть учётной записи компьютера), поэтому нужны права именно для компьютерной учётной записи.
Проверки и действия:
- Всегда указывайте UNC‑путь в GPO:
\\server\share\package.msi(не буква диска). - На файловом сервере настройте:
- Share‑permissions: дать
Domain Computers(илиAuthenticated Users) — Read. - NTFS‑разрешения: дать
Domain Computers— Read & Execute, List folder contents. - Убедитесь, что share и NTFS разрешения не конфликтуют (share не должен быть строже).
- Тест доступа как компьютер: запустите на клиенте с правами SYSTEM (psexec) или временно откройте сессию через
schtasks/startup script, или выполните:
psexec -s -i cmd.exeи затемdir \\server\share\package.msi— чтобы проверить доступ от имени System.
Если вы перемещали пакет после создания записи в GPO, обновите ссылку в GPO (удалите/добавьте пакет или используйте Update), иначе GPO может указывать на старый путь. Некоторая документация и практические примеры о правах и ошибках — в обсуждении на Microsoft Forums и в базе: не устанавливаются через GPO msi‑пакеты (social.technet).
Политики Windows Installer и блокировки MSI (AppLocker, SRP)
Ещё один распространённый сценарий — сама политика Windows блокирует установку. Ошибка типа “The system administrator has set policies to prevent this installation” — прямой признак этого. Проверьте эти места:
Где смотреть в GPO:
- Computer Configuration → Policies → Administrative Templates → Windows Components → Windows Installer
Проверьте параметры:Turn off Windows Installer,Prohibit non‑administrators from applying vendor signed updatesи похожие. Установите нужные значения (например, Turn off Windows Installer = Never). - Computer Configuration → Windows Settings → Security Settings → Software Restriction Policies и → Application Control Policies → AppLocker — убедитесь, что правила не запрещают запуск msiexec или блокируют путь.
Реестр (если нужно срочно исправить на отдельной машине):
- Ключи политики могут отражаться в реестре
HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer. Примеры значений (встречаются в инструкциях по разблокировке):
DisableMSI=0,DisablePatch=0,DisableLUAPatching=0,AllowLockdownPatch=1.
Подробный разбор параметров и как с ними работать — в статье: Данная установка запрещена политикой, заданной системным администратором (winitpro).
Также проверьте, не блокирует ли инфраструктура подписи пакета (если используются политики, запрещающие установки не‑администраторов для vendor‑signed обновлений).
Сетевое ожидание, порядок запуска и архитектура пакетов (x86/x64, WMI)
Почему MSI через GPO могут «пропадать» без ошибок? Потому что установка задана в Computer Configuration и выполняется при старте системы — иногда сетевой драйвер/ранний процесс ещё не готов и доступ к шару невозможен. В таких случаях установка обычно пропускается, без явной ошибки в App‑логе.
Решения:
- Включите политику:
Computer Configuration → Policies → Administrative Templates → System → Logon →Always wait for the network at computer and user logon— это заставит систему ждать сети при старте. - Установите таймаут для обработки Group Policy:
Computer Configuration → Policies → Administrative Templates → System → Group Policy →Specify time to wait for Group Policy processing— например, 30 секунд.
(Рекомендации по ожиданию сети и таймаутам обсуждались в практических ответах: qna.habr.com.)
Архитектура и WMI‑фильтры:
- Если MSI — x64, он не установится на x86. Создавайте отдельные GPO или используйте WMI‑фильтр. Пример WMI запроса для 64‑битных ОС:
SELECT * FROM Win32_OperatingSystem WHERE OSArchitecture = "64-bit" - Если пакет требует интерактивного UI — он не установится в контексте Local System без параметра silent (
/qn). Для таких случаев используйте startup‑script сmsiexecили SCCM/Intune.
Пример запуска ручной проверки (от имени System для диагностики):
psexec -s -i cmd.exe
msiexec /i "\\server\share\package.msi" /qn /l*v "C:\msi_install.log"
Логирование, диагностика и пошаговый чек‑лист исправления
Когда в логах видно только старт и конец — значит подробности не включены. Логирование даст ответ.
- Сбор базовой информации
- На клиенте:
gpresult /r→ подтвердите применение GPO. - Перезапустите клиент после
gpupdate /force.
- Посмотреть события MSI
- Откройте Event Viewer → Windows Logs → Application и отфильтруйте Source =
MsiInstaller. Ищите события 101, 103, 108, 1112 и т.д. Эти коды дают подсказку о причинах.
- Включить подробное логирование установки
- Включите verbose‑логи AppMgmt (как советуют практические статьи): в реестре поставьте
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Diagnostics\AppmgmtDebugLevel = 0x9B
После этого подробные логи можно искать вC:\WINNT\debug\usermode\appmgmt.log(путь в старых системах; на современных —C:\Windows\debug\usermode...). С описанием этого метода можно ознакомиться в практическом руководстве: winitpro — установка программ с помощью GPO. - Для MSI‑логов можно принудительно включить logging (если вы тестируете вручную):
msiexec /i "\\server\share\package.msi" /l*v "C:\msi_verbose.log"
- Типовой чек‑лист (делать по порядку)
- [ ] Запустить
gpresult /r— проверить, что политика применена к компьютеру. - [ ] Проверить Security Filtering / Delegation в GPMC (добавить Domain Computers, дать Read + Apply).
- [ ] Убедиться, что UNC путь корректен и доступен от имени SYSTEM (psexec тест).
- [ ] Проверить share и NTFS разрешения (Domain Computers → Read).
- [ ] Включить
Always wait for the network at computer and user logonи увеличить таймаут GP. - [ ] Проверить Windows Installer policies / AppLocker / SRP (и реестр при необходимости).
- [ ] Включить verbose logging, перезагрузить, проанализировать
appmgmtиMsiInstallerлоги. - [ ] При необходимости развернуть MSI вручную от имени System с
/l*vдля получения детального лога. - [ ] Если пакет перемещался/обновлялся — удалить и заново добавить MSI в GPO (или использовать Update).
Если после всех проверок проблема сохраняется — соберите gpresult/h report и логи MSI и AppMgmt и сравните с рабочей машиной. Для типичных ошибок и советов по их решению можно также посмотреть обсуждения в базе знаний и форумах: support.indeed-company.ru и на social.technet.microsoft.com.
Источники
- https://winitpro.ru/index.php/2011/10/21/ustanovka-programm-s-pomoshhyu-gruppovyx-politik/
- https://qna.habr.com/q/723285
- https://winitpro.ru/index.php/2018/01/28/dannaya-ustanovka-zapreshhena-politikoj-zadannoj-sistemnym-administratorom/
- https://support.indeed-company.ru/knowledgebase/article/View/38/5/ne-ustanavlivayutsya-msi-pakety-cherez-gruppovuyu-politiku
- https://social.technet.microsoft.com/Forums/ru-RU/e901fd23-bba8-4430-9598-af358176e854/-gpo-msi?forum=ws2008r2ru
Заключение
Если msi не устанавливается через GPO, начинайте с простого: подтвердите применение GPO, проверьте права компьютерной учётной записи на UNC‑шаре и убедитесь, что сеть доступна в момент старта. Часто решение — дать Domain Computers доступ к шаре, включить ожидание сети при загрузке и включить verbose‑логи для точной диагностики. Следуйте чек‑листу выше: gpresult → права → ожидание сети → политики Windows Installer → логи — и вы найдёте и устраните причину.