Подробный гайд: Windows Installer: руководство по установке, логам и устранению ошибок MSI

Руководство по Windows Installer: архитектура, логирование, коды ошибок, скрипты PowerShell для автоматизации установки MSI-пакетов

2026.05.22                  


Подробный гайд: Windows Installer: руководство по установке, логам и устранению ошибок MSIПодробный гайд: Windows Installer: руководство по установке, логам и устранению ошибок MSI Сразу уточню важный момент: в официальной документации Microsoft не существует компонента или службы с точным названием Windows Installer Coordinator.

Вероятнее всего, речь идёт об одном из следующих вариантов:

  1. Служба Windows Installer (msiserver) + процесс msiexec.exe, которые фактически выполняют координацию установки MSI-пакетов.
  2. Update Orchestrator Service (UsoSvc) или Windows Update Medic Service, которые координируют обновления (часто путают с установщиком).
  3. Корпоративные системы развёртывания (SCCM, Intune, MDT), где есть модуль координации зависимостей и очередей установок.

Ниже представлен подробный технический гайд по реальной архитектуре, работе и troubleshooting механизма установки Windows (Windows Installer), включая то, как в системе реализуется "координация" процессов установки, удаления и восстановления.


1. Архитектура Windows Installer

Компонент Описание
Служба msiserver (отображаемое имя: Установщик Windows)
Исполняемый файл C:\Windows\System32\msiexec.exe
Тип запуска Manual (Trigger Start) → запускается по требованию, не висит в фоне постоянно
Учётная запись LocalSystem
Формат пакетов .msi (реляционная база данных Jet/SQL CE) + .msp (патчи) + .mst (трансформации)

Как работает "координация" внутри Windows Installer

  1. Транзакционная модель: Все изменения (файлы, реестр, ярлыки, службы) фиксируются атомарно. При ошибке → автоматический откат (rollback).
  2. Блокировки: msiexec использует мьютексы Global_MSIExecute_ и Global_MSIExecute_{GUID} чтобы предотвратить параллельные установки одного пакета.
3. Координация с ОС:
  • Запрос прав через UAC → elevation до TrustedInstaller или Administrator
  • Взаимодействие с Windows Resource Protection (WRP) для защиты системных файлов
  • Интеграция с Volume Shadow Copy (VSS) для точек восстановления (опционально)
  • Регистрация компонентов в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer

2. Управление и диагностика (CLI + GUI)

Проверка состояния службы

Get-Service msiserver | Select-Object Name, Status, StartType
# Статус обычно "Stopped" – это нормально, служба запускается по запросу

Включение детального логирования

msiexec /i "C:\path\to\package.msi" /l*v "C:\Logs\install.log" /qn

Флаги логирования:

Флаг Назначение
/l*v Полный лог (ошибки, предупреждения, действия, отладка)
/l*e Только ошибки
/l*i Только информационные события

Где искать логи в Event Viewer:

Приложения и службы → Microsoft → Windows → Installer → Operational


Сброс регистрации установщика (при повреждениях)

:: Запускать от имени Администратора
net stop msiserver
msiexec /unregister
msiexec /regserver
net start msiserver

3. Типичные ошибки и их расшифровка

Код Значение Решение
1603 Fatal error during installation Проверить лог /l*v. Чаще всего: конфликт с антивирусом, нехватка прав, повреждённый MSI, заблокированные файлы
1618 Another installation is already in progress Подождите завершения или завершите msiexec.exe в Диспетчере задач
1619 This installation package could not be opened Проверьте путь, целостность файла, цифровую подпись, права доступа
1605 This action is only valid for products that are currently installed Попытка удалить/восстановить пакет, которого нет в базе установщика
1722 There is a problem with this Windows Installer package Сломанный Custom Action, нехватка VC++ redistributable, битые пути в реестре

Утилита для анализа логов:

Microsoft Windows Installer Troubleshooter или PowerShell-скрипты парсинга msiexec логов.


4. Корпоративная "координация" установок

Если вам нужен именно координатор очередей и зависимостей, Windows Installer сам по себе его не предоставляет.

В enterprise-среде используются:

Решение Роль "координатора"
SCCM / MEMCM Управляет очередями, зависимостями, окнами обслуживания, повторными попытками
Intune (Win32 apps) Координирует установку через IntuneManagementExtension, поддерживает detection rules
Winget / Chocolatey Разрешают зависимости, проверяют хэши, управляют очередью через CLI
PowerShell + Job Queue Кастомная координация: Start-Job, Wait-Job, логирование, retry-логика

Пример скрипта "координатора" на PowerShell

$Packages = @(
    @{Path="app1.msi"; Args="/qn /norestart /log C:\Logs\app1.log"; DependsOn=$null},
    @{Path="app2.msi"; Args="/qn /norestart /log C:\Logs\app2.log"; DependsOn="app1"}
)

foreach ($pkg in $Packages) {
    if ($pkg.DependsOn) {
        while (!(Get-Process -Name "app1_process" -ErrorAction SilentlyContinue)) { Start-Sleep 2 }
    }
    Start-Process msiexec.exe -ArgumentList "/i $($pkg.Path) $($pkg.Args)" -Wait -NoNewWindow
}

5. Обслуживание и безопасность

Действие Рекомендация
%WINDIR%\Installer Никогда не удаляйте вручную. Содержит кэш MSI/MSP для восстановления и удаления. Используйте PatchCleaner или штатную очистку диска
Права на запуск MSI Только от Administrator или TrustedInstaller. Избегайте запуска от SYSTEM без необходимости
Цифровая подпись Проверяйте: sigcheck -v package.msi или через свойства файла
Автозапуск службы Не меняйте на Automatic. Триггерный запуск оптимизирован Microsoft
Резервное копирование Сохраняйте оригинальные MSI и логи установок в репозитории

6. Официальные ресурсы

  • Command-line options for Msiexec.exe - learn.microsoft.com/en-us/windows/win32/msi/standard-installer-command-line-options
  • Windows Installer Error Codes - learn.microsoft.com/en-us/windows/win32/msi/error-codes

Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.