Почему при установке платформы 1С зависает установка Microsoft Visual C++ на 0% и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При развертывании или обновлении платформы «1С:Предприятие 8.3» (например, релизов 8.3.14.1854, 8.3.16 и более свежих) на серверах под управлением операционных систем семейства Windows Server системные администраторы часто сталкиваются с неприятной ситуацией. Программа установки платформы намертво зависает на этапе инсталляции вспомогательных компонентов, конкретно — на пакете Microsoft Visual C++ 2017 Redistributable (x86) версии 14.14.26405. Прогресс-бар при этом стабильно показывает 0% и не двигается с места часами.

Дополнительными симптомами, указывающими на системный характер проблемы, являются невозможность установить более ранние версии библиотек Visual C++ (процесс также зависает или завершается ошибкой), а также странное поведение другого прикладного софта. Например, популярная утилита удаленного доступа TeamViewer при попытке запуска инсталлятора открывает абсолютно пустое, белое окно без каких-либо элементов управления.

В этой статье мы подробно разберем, почему возникают эти взаимосвязанные проблемы на операционных системах Windows Server (особенно на Windows Server 2008 и Windows Server 2008 R2, которую пользователи иногда ошибочно называют «Windows Server 2007»), и пошагово восстановим работоспособность сервера для успешной работы 1С.

Выясняем причины: почему зависает установщик Visual C++?

Чтобы найти эффективное решение, давайте сначала проанализируем внутренние механизмы работы ОС и пакетов распространяемого кода Microsoft Visual C++ Redistributable. Начиная с версии 2015 года, эти библиотеки тесно интегрированы с компонентом операционной системы под названием Universal C Runtime (UCRT).

При запуске установки Visual C++ 2017 инсталлятор выполняет следующие скрытые от пользователя действия:

  1. Проверяет наличие библиотек UCRT в системе.
  2. Если они отсутствуют, установщик пытается развернуть системное обновление KB2999226.
  3. Для интеграции обновления вызывается стандартная системная утилита wusa.exe (Windows Update Standalone Installer).
  4. Утилита wusa.exe обращается к системной службе «Центр обновления Windows» (wuauserv) для проверки зависимостей и интеграции пакета в хранилище компонентов CBS (Component-Based Servicing).

Именно на этом этапе и происходит зависание. Если служба обновлений Windows на сервере отключена администратором, повреждена или зависла в бесконечном цикле поиска обновлений (что крайне характерно для давно не обновлявшихся систем Windows Server 2008 R2), утилита wusa.exe уходит в бесконечное ожидание. Процесс установки Visual C++ блокируется, отображая 0% прогресса.

Что касается проблемы с пустым окном TeamViewer и сбоев других программ — это следствие отсутствия поддержки современных алгоритмов подписи кода. Современные веб-установщики и библиотеки используют цифровую подпись SHA-2. Старые операционные системы «из коробки» поддерживают только устаревший алгоритм SHA-1. Без необходимых обновлений безопасности ОС считает файлы поврежденными или недоверенными, из-за чего графические движки инсталляторов (часто построенные на Chromium Embedded Framework или Qt) просто отказываются корректно инициализироваться и отрисовывать интерфейс.

---

Шаг 1. Разблокировка службы обновлений и ручная интеграция UCRT

Давайте разберем по шагам, как обойти зависание системного установщика обновлений. В первую очередь нам необходимо убедиться, что служба Центра обновлений Windows запущена и способна обрабатывать запросы.

Проверим статус службы через консоль управления или выполним принудительный запуск через командную строку, запущенную с правами администратора. Для этого введем команду:

net start wuauserv

Если служба успешно запустилась, попробуем повторить установку Visual C++. Если процесс снова завис, значит, механизм автоматической интеграции обновлений поврежден. В этом случае нам потребуется установить обновление KB2999226 вручную «обходным» путем, используя утилиту обслуживания образов DISM.

Для этого выполним следующую последовательность действий:

  1. Скачаем файл обновления Windows6.1-KB2999226-x64.msu (для 64-битной версии Windows Server 2008 R2) с официального каталога обновлений Майкрософт.
  2. Создадим временную папку на диске C, например, с именем C:\TEMP_UCRT.
  3. Распакуем содержимое скачанного файла .msu (который по сути является архивом) с помощью командной строки:
  4. wusa.exe C:\PathToUpdate\Windows6.1-KB2999226-x64.msu /extract:C:\TEMP_UCRT
  5. В распакованной папке найдем CAB-файл обновления (он будет называться примерно Windows6.1-KB2999226-x64.cab).
  6. Принудительно внедрим этот пакет непосредственно в ядро операционной системы в обход стандартной службы обновлений с помощью утилиты DISM, выполнив команду:
  7. 
    dism.exe /online /add-package /packagepath:C:\TEMP_UCRT\Windows6.1-KB2999226-x64.cab
    

После завершения операции обязательно перезагрузим сервер. Данная процедура гарантирует появление библиотек Universal C Runtime в системе, после чего установщик Visual C++ перестанет обращаться к зависающей службе обновлений.

---

Шаг 2. Добавление поддержки алгоритма SHA-2 на сервере

Чтобы решить проблему с «белыми окнами» установщиков, включая TeamViewer, и предотвратить блокировку файлов защиты платформы 1С, нам необходимо обучить операционную систему работе с современными цифровыми подписями SHA-2.

Для этого нам потребуется вручную скачать и установить два критически важных обновления от Microsoft:

Скачаем эти пакеты разрядности x64 (или x86, если используется редкая 32-битная серверная ОС) и установим их. Если при установке этих пакетов через двойной клик система снова зависает, применим аналогичный метод распаковки через команду /extract и последующую интеграцию через dism.exe /add-package, который мы подробно рассмотрели в предыдущем шаге.

После установки обновлений KB4474419 и KB4490628 выполним перезагрузку сервера. Вы увидите, что графический интерфейс современных программ начал корректно отрисовываться, а операционная система больше не блокирует запуск библиотек.

---

Шаг 3. Устранение конфликтов версий Visual C++ (ошибка 0x80070666)

Проанализируем еще одну частую проблему. Начиная с версии 2015 года, все пакеты Microsoft Visual C++ (2015, 2017, 2019, 2022) являются фактически одной линейкой продуктов и используют общие системные файлы. Если на сервере ранее уже была установлена поврежденная или недоустановленная версия C++ 2015, попытка установить пакет C++ 2017 из дистрибутива 1С завершится ошибкой со сложным кодом (например, 0x80070666), сообщающим, что в системе уже присутствует другая версия этого продукта.

Чтобы решить этот конфликт, выполним очистку кэша установщика:

  1. Перейдем в панель управления сервером и попытаемся удалить все существующие версии «Microsoft Visual C++ Redistributable» начиная с версии 2015 и выше.
  2. Если удаление стандартными средствами Windows завершается ошибкой из-за отсутствия файлов в кэше установщика (в каталоге C:\ProgramData\Package Cache), воспользуемся официальной утилитой Microsoft Program Install and Uninstall Troubleshooter. Она поможет принудительно вычистить записи поврежденных пакетов из реестра.
  3. Вместо использования устаревших разрозненных пакетов (таких как версия 14.14.26405 из дистрибутива платформы 1С 8.3.14) скачаем и установим актуальный единый пакет Microsoft Visual C++ 2015–2022 Redistributable (обеих разрядностей — x86 и x64). Этот пакет полностью обратно совместим со всеми предыдущими версиями и содержит в себе все необходимые файлы для корректной работы серверных и клиентских приложений 1С:Предприятия.

---

Шаг 4. Обходной путь — прямая установка платформы 1С через MSI

Если время на администрирование сервера ограничено, а платформу 1С требуется запустить незамедлительно, мы можем применить обходной путь решения. Программа запуска setup.exe из дистрибутива 1С выполняет последовательную установку всех компонентов, прописанных в конфигурационном файле, включая проблемный Visual C++. Но мы можем запустить установку платформы напрямую, минуя любые проверки стороннего софта.

Для этого выполним установку непосредственно через msi-пакет:

  1. Откроем папку с распакованным дистрибутивом платформы 1С.
  2. Найдем файл с расширением msi, который называется 1CEnterprise 8.3.msi (или 1CEnterprise 8.3 x86-64.msi для 64-битной версии).
  3. Запустим установку этого пакета напрямую. Программа установит саму платформу 1С, полностью проигнорировав установку вспомогательных системных библиотек Visual C++.

Обратите внимание: этот способ сработает только в том случае, если на вашем сервере физически уже присутствуют работоспособные библиотеки C++ нужных версий. Если их нет, запуск установленной платформы 1С завершится аварийно с системной ошибкой об отсутствии необходимых DLL-файлов в операционной системе.

---

Резюме и рекомендации по обслуживанию

Подводя итоги, отметим, что стабильная работа платформы «1С:Предприятие» напрямую зависит от своевременного обслуживания операционной системы сервера. Для предотвращения подобных проблем в будущем настоятельно рекомендуем придерживаться следующих правил:

Выполнение этих простых шагов позволит вам избежать непредвиденных сбоев, сэкономит рабочее время и обеспечит высокую надежность и быстродействие всей инфраструктуры 1С на вашем предприятии. Для решения других типовых задач администрирования можно использовать справочник готовых решений системных проблем для Windows и 1С.

← На главную