Ошибка 0x643 и код 1603 в SCCM при установке приложений: решение
Симптомы сбоя установки через SCCM (0x643 / 1603)
При распространении программного обеспечения через Microsoft Endpoint Configuration Manager (SCCM / MECM) установка завершается со статусом «Failed» (Сбой). В Центре программного обеспечения (Software Center) отображается ошибка 0x643(1603) или «The software change returned error code 0x643(1603)».
| Журнал | Сообщение об ошибке | Причина |
|---|---|---|
| AppEnforce.log | Unmatched exit code (1603) is considered an execution failure | Установщик Windows Installer (MSI) прервал процесс из-за внутренней ошибки |
| MSI*.log | MainEngineThread is returning 1603 / CustomAction returned actual error code 1603 | Сбой выполнения пользовательского скрипта или нехватка системных привилегий |
| AppDiscovery.log | In-line detection rule evaluation failed | После инсталляции правило обнаружения (Detection Rule) не нашло приложение |
Пошаговое устранение ошибки 0x643 / 1603 в Configuration Manager
Код возврата 1603 (шестнадцатеричный 0x643) — это универсальный фатальный код ошибки Windows Installer. Для решения требуется включить подробное логирование и устранить ограничения контекста выполнения SYSTEM.
- Включите подробное логирование MSI в строке установки SCCM: добавьте ключи записи подробного лога к командной строке развертывания:
msiexec.exe /i "Package.msi" /qn /norestart /L*v "%windir%\Logs\Software_MSI.log" - Проверьте контекст запуска (Install for System vs User): приложения, устанавливаемые в контексте учетной записи компьютера (
NT AUTHORITY\SYSTEM), не имеют доступа к сетевым дискам пользователя или ветке реестраHKCU. Настройте переключатель развертывания в Deployment Type на «Install for system» и убедитесь, что бинарные файлы берутся из локального ccmcache. - Скорректируйте права на папки Temp и Common Files для учетной записи SYSTEM:
icacls "C:\Windows\Temp" /grant "SYSTEM:(OI)(CI)F" /grant "Administrators:(OI)(CI)F"; icacls "C:\Program Files\Common Files" /grant "SYSTEM:(OI)(CI)F" - Очистите зависшие транзакции установщика Windows Installer:
Stop-Service -Name msiserver -Force; Remove-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\InProgress" -Recurse -ErrorAction SilentlyContinue; Start-Service -Name msiserver
Важно: Проверьте файл AppEnforce.log на клиентской машине по пути C:\Windows\CCM\Logs. Если инсталлятор завершился успешно, но SCCM выдает 1603, проблема кроется в некорректном правиле обнаружения (Detection Method), ищущем несуществующий ключ реестра или версию файла.
Частые вопросы (FAQ)
Что означает шестнадцатеричный код 0x643?
В десятичной системе 0x643 равен 1603 — это системная константа ERROR_INSTALL_FAILURE, означающая фатальный сбой во время выполнения скрипта инсталляции или регистрации компонентов MSI.
Почему установка вручную проходит без ошибок, а через SCCM возвращает 1603?
При ручном запуске процесс выполняется от имени администратора с доступом к пользовательскому профилю, а SCCM выполняет установку под учетной записью локальной системы SYSTEM, где отсутствуют переменные среды пользователя и доступ к сети без прав учетной записи компьютера (DOMAIN\COMPUTER$).
Как перезапустить зависший агент Configuration Manager на клиенте?
Выполните в консоли PowerShell с правами администратора команду: Restart-Service -Name CcmExec -Force.
Где в консоли SCCM переопределить код 1603 как успешный?
В свойствах типа развертывания (Deployment Type) во вкладке Return Codes можно добавить код 1603 со значением Success или Fast Retry, если установщик специфического ПО завершает работу с этим кодом при успехе.