При развертывании или обновлении платформы «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С.
Чтобы найти эффективное решение, давайте сначала проанализируем внутренние механизмы работы ОС и пакетов распространяемого кода Microsoft Visual C++ Redistributable. Начиная с версии 2015 года, эти библиотеки тесно интегрированы с компонентом операционной системы под названием Universal C Runtime (UCRT).
При запуске установки Visual C++ 2017 инсталлятор выполняет следующие скрытые от пользователя действия:
wusa.exe (Windows Update Standalone Installer).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) просто отказываются корректно инициализироваться и отрисовывать интерфейс.
---
Давайте разберем по шагам, как обойти зависание системного установщика обновлений. В первую очередь нам необходимо убедиться, что служба Центра обновлений Windows запущена и способна обрабатывать запросы.
Проверим статус службы через консоль управления или выполним принудительный запуск через командную строку, запущенную с правами администратора. Для этого введем команду:
net start wuauserv
Если служба успешно запустилась, попробуем повторить установку Visual C++. Если процесс снова завис, значит, механизм автоматической интеграции обновлений поврежден. В этом случае нам потребуется установить обновление KB2999226 вручную «обходным» путем, используя утилиту обслуживания образов DISM.
Для этого выполним следующую последовательность действий:
Windows6.1-KB2999226-x64.msu (для 64-битной версии Windows Server 2008 R2) с официального каталога обновлений Майкрософт.C:\TEMP_UCRT..msu (который по сути является архивом) с помощью командной строки:
wusa.exe C:\PathToUpdate\Windows6.1-KB2999226-x64.msu /extract:C:\TEMP_UCRT
Windows6.1-KB2999226-x64.cab).
dism.exe /online /add-package /packagepath:C:\TEMP_UCRT\Windows6.1-KB2999226-x64.cab
После завершения операции обязательно перезагрузим сервер. Данная процедура гарантирует появление библиотек Universal C Runtime в системе, после чего установщик Visual C++ перестанет обращаться к зависающей службе обновлений.
---
Чтобы решить проблему с «белыми окнами» установщиков, включая TeamViewer, и предотвратить блокировку файлов защиты платформы 1С, нам необходимо обучить операционную систему работе с современными цифровыми подписями SHA-2.
Для этого нам потребуется вручную скачать и установить два критически важных обновления от Microsoft:
Скачаем эти пакеты разрядности x64 (или x86, если используется редкая 32-битная серверная ОС) и установим их. Если при установке этих пакетов через двойной клик система снова зависает, применим аналогичный метод распаковки через команду /extract и последующую интеграцию через dism.exe /add-package, который мы подробно рассмотрели в предыдущем шаге.
После установки обновлений KB4474419 и KB4490628 выполним перезагрузку сервера. Вы увидите, что графический интерфейс современных программ начал корректно отрисовываться, а операционная система больше не блокирует запуск библиотек.
---
Проанализируем еще одну частую проблему. Начиная с версии 2015 года, все пакеты Microsoft Visual C++ (2015, 2017, 2019, 2022) являются фактически одной линейкой продуктов и используют общие системные файлы. Если на сервере ранее уже была установлена поврежденная или недоустановленная версия C++ 2015, попытка установить пакет C++ 2017 из дистрибутива 1С завершится ошибкой со сложным кодом (например, 0x80070666), сообщающим, что в системе уже присутствует другая версия этого продукта.
Чтобы решить этот конфликт, выполним очистку кэша установщика:
C:\ProgramData\Package Cache), воспользуемся официальной утилитой Microsoft Program Install and Uninstall Troubleshooter. Она поможет принудительно вычистить записи поврежденных пакетов из реестра.---
Если время на администрирование сервера ограничено, а платформу 1С требуется запустить незамедлительно, мы можем применить обходной путь решения. Программа запуска setup.exe из дистрибутива 1С выполняет последовательную установку всех компонентов, прописанных в конфигурационном файле, включая проблемный Visual C++. Но мы можем запустить установку платформы напрямую, минуя любые проверки стороннего софта.
Для этого выполним установку непосредственно через msi-пакет:
1CEnterprise 8.3.msi (или 1CEnterprise 8.3 x86-64.msi для 64-битной версии).Обратите внимание: этот способ сработает только в том случае, если на вашем сервере физически уже присутствуют работоспособные библиотеки C++ нужных версий. Если их нет, запуск установленной платформы 1С завершится аварийно с системной ошибкой об отсутствии необходимых DLL-файлов в операционной системе.
---
Подводя итоги, отметим, что стабильная работа платформы «1С:Предприятие» напрямую зависит от своевременного обслуживания операционной системы сервера. Для предотвращения подобных проблем в будущем настоятельно рекомендуем придерживаться следующих правил:
Выполнение этих простых шагов позволит вам избежать непредвиденных сбоев, сэкономит рабочее время и обеспечит высокую надежность и быстродействие всей инфраструктуры 1С на вашем предприятии. Для решения других типовых задач администрирования можно использовать справочник готовых решений системных проблем для Windows и 1С.