При администрировании нескольких серверов 1С часто возникает необходимость использовать оснастку MMC (консоль управления сервером) для разных релизов одной ветки платформы (например, 8.2.19.68 и 8.2.16.352). Однако при попытке параллельного запуска одной из консолей администраторы сталкиваются с тем, что работает только последняя установленная версия, а при попытке переключиться возникает ошибка инициализации оснастки.
Рассмотрим причины возникновения этой проблемы и разберем по шагам рабочие способы её решения.
Проанализируем ситуацию изнутри. Консоль управления сервером 1С представляет собой стандартный файл оснастки Microsoft Management Console (файлы с расширением .msc), который взаимодействует с сервером через динамическую библиотеку администрирования radmin.dll.
Основная причина конфликта заключается в особенностях COM-регистрации библиотеки radmin.dll в операционной системе Windows:
radmin.dll в рамках одного семейства релизов (например, 8.2 или 8.3) имеют одинаковый уникальный идентификатор класса (CLSID) в реестре Windows по адресу HKEY_CLASSES_ROOT\CLSID.radmin.dll последней зарегистрированной версии.Для переключения между консолями разных релизов можно использовать динамическую перерегистрацию библиотеки radmin.dll перед запуском оснастки. В платформе 1С предусмотрен штатный утилитарный файл RegMSC.cmd (или RegMSC64.cmd для 64-разрядных систем), находящийся в каталоге bin нужного релиза.
Разберем создание управляющих батников для каждого релиза. Для этого создадим отдельные командные файлы для запуска каждой версии консоли.
Пример командного файла для запуска консоли версии 8.2.16.352:
@echo off
rem Регистрация компоненты администрирования для версии 8.2.16.352
regsvr32 /s "C:\Program Files (x86)\1cv82\8.2.16.352\bin\radmin.dll"
rem Запуск оснастки MMC
start "" "C:\Program Files (x86)\1cv82\8.2.16.352\bin\1CV8 Servers (x86-64).msc"
Пример командного файла для запуска консоли версии 8.2.19.68:
@echo off
rem Регистрация компоненты администрирования для версии 8.2.19.68
regsvr32 /s "C:\Program Files (x86)\1cv82\8.2.19.68\bin\radmin.dll"
rem Запуск оснастки MMC
start "" "C:\Program Files (x86)\1cv82\8.2.19.68\bin\1CV8 Servers (x86-64).msc"
Важное примечание: Командные файлы необходимо запускать с правами администратора, иначе команда regsvr32 не сможет внести изменения в системный реестр Windows.
При использовании скриптов перерегистрации следует учитывать разрядность консоли MMC:
Если требуется постоянно управлять серверами разных версий и уйти от проблем с регистрацией системных библиотек Windows MMC, рекомендуется отказаться от классической консоли в пользу сервера администрирования RAS (Remote Administration Server) и утилиты командной строки RAC.
Преимущества данного подхода:
RAS запускается отдельно для каждого релиза кластера и работает на своем сетевом порту.radmin.dll.rac.exe или Java SDK.Для запуска сервера администрирования нужного релиза в режиме службы используется следующая команда:
ras.exe cluster --daemon --port=1545 127.0.0.1:1540
Где --port=1545 — порт службы RAS, а 127.0.0.1:1540 — адрес и порт агента соответствующего сервера 1С.