Удаление агента сервера 1С с Windows без хвостов в системе

· 10 мин

Содержание

Службу агента сервера 1С удаляют двумя командами в командной строке от имени администратора: сначала sc stop "<имя службы>", затем sc delete "<имя службы>". Имя службы нужно взять из её свойств в services.msc, а не набирать по памяти: у 64-битного сервера оно обычно выглядит как 1C:Enterprise 8.3 Server Agent (x86-64).

Частая ошибка — думать, что удаление платформы через «Программы и компоненты» всегда убирает и службу. Если агент регистрировали вручную через ragent.exe -instsrvc или на сервере стоит несколько версий, служба остаётся. Она висит в списке с путём к уже несуществующему ragent.exe и при каждой загрузке Windows пишет ошибку в журнал. Ниже порядок, при котором ничего лишнего не остаётся и ничего нужного не теряется.

Что сделать до остановки агента 1С

Удаление службы агента 1С само по себе не трогает базы данных на SQL Server или PostgreSQL. Но вместе с агентом пропадает реестр кластера: список информационных баз, администраторы кластера, назначения функциональности, настройки рабочих процессов. Если сервер потом придётся поднять снова, всё это придётся вбивать заново.

Перед остановкой пройдите короткий список:

  • 📋 Выгрузите список баз кластера. Имя базы в кластере, имя базы на СУБД, адрес сервера СУБД — пригодится при переносе.
  • 💾 Скопируйте каталог srvinfo. По умолчанию для службы это C:\Program Files\1cv8\srvinfo. Внутри лежит папка reg_1541 с файлом 1CV8Clst.lst — это и есть реестр кластера.
  • 👥 Предупредите пользователей. Остановка агента обрывает все сеансы: несохранённые документы пропадут, фоновые и регламентные задания прервутся. Делайте это вне рабочего времени.
  • 🔍 Проверьте, сколько агентов на машине. На одном сервере могут работать два кластера разных версий на портах 1540 и 2540. Удалять нужно только свой.

Не удаляйте базы из кластера с вариантом «Удалить базу данных». В консоли администрирования при удалении информационной базы есть выбор: оставить базу данных без изменений, очистить или удалить. Для вывода сервера из работы нужен только первый вариант — иначе вместе с регистрацией вы сотрёте данные на СУБД.

Шаг 1. Как найти имя службы агента 1С и остановить её

Откройте оснастку служб: Win + R → services.msc. В списке ищите строку «Агент сервера 1С:Предприятия 8.3». Дважды щёлкните по ней и посмотрите два поля на вкладке «Общие»:

  1. Имя службы — его и подставляете в команды. Отображаемое имя для sc не годится.
  2. Исполняемый файл — полный путь к ragent.exe с параметрами. По ключу -port видно, какой это агент, а по папке — версия платформы, например C:\Program Files\1cv8\8.3.24.1586\bin\ragent.exe.

Тот же поиск из командной строки:

sc query state= all | findstr /i "1C"
sc qc "1C:Enterprise 8.3 Server Agent (x86-64)"

Первая команда покажет все службы со словом «1C» в имени, вторая — путь к исполняемому файлу (строка BINARY_PATH_NAME). Пробел после state= обязателен, без него sc вернёт справку.

Теперь остановка:

sc stop "1C:Enterprise 8.3 Server Agent (x86-64)"
sc config "1C:Enterprise 8.3 Server Agent (x86-64)" start= disabled

Вторая строка переводит запуск в «Отключена». Это страховка: если удаление сорвётся, служба не поднимется сама после перезагрузки.

Через 10–30 секунд проверьте, что процессы сервера завершились:

tasklist | findstr /i "ragent rmngr rphost"

Пустой вывод — всё остановилось. Если rphost.exe висит дольше минуты, его можно снять принудительно: taskkill /f /im rphost.exe. Только убедитесь, что на машине нет второго кластера, иначе вы убьёте и его рабочие процессы.

Шаг 2. Разобрать кластер в консоли администрирования серверов

Этот шаг нужен, если сервер выводят из эксплуатации или переносят. Если вы просто переустанавливаете ту же версию на той же машине, его можно пропустить: реестр кластера сохранится в srvinfo.

Консоль «Администрирование серверов 1С Предприятия» подключается к агенту, поэтому работает только пока служба запущена. Значит, это делается до шага 1 — или запустите службу снова на время разбора.

Что сделать в консоли:

  1. Раскройте Central 1C:Enterprise 8.3 servers → ваш сервер → Кластеры → кластер → Информационные базы.
  2. Перепишите для каждой базы её параметры: в свойствах видно имя базы на СУБД, тип СУБД и сервер баз данных.
  3. Если базы переезжают на другой кластер — сначала зарегистрируйте их там и проверьте вход. Только потом удаляйте регистрацию здесь, с вариантом «Оставить базу данных без изменений».

Если консоль не открывается, список баз можно получить через утилиту rac. Ей нужен запущенный сервер администрирования ras:

rac cluster list
rac infobase summary list --cluster=<UUID кластера>

UUID кластера берёте из вывода первой команды. Если не помните параметры конкретной версии — rac help покажет все режимы.

Сервер администрирования часто зарегистрирован отдельной службой, обычно с отображаемым именем вроде «1C:Enterprise 8.3 Remote Server». При удалении агента о ней забывают, и она годами висит со статусом «Остановлена» или сыплет ошибками подключения к порту 1540. Удаляйте её тем же способом, что и агент.

Шаг 3. Удаление службы агента 1С из командной строки

Командную строку запускайте только «От имени администратора» — без повышенных прав sc delete вернёт ошибку 5 «Отказано в доступе».

Способ А: через sc delete

Универсальный вариант, работает для любой службы:

sc delete "1C:Enterprise 8.3 Server Agent (x86-64)"

Ответ [SC] DeleteService: успех означает, что запись удалена. Если в этот момент открыта оснастка services.msc, служба может остаться в списке с пометкой — закройте оснастку и откройте снова.

Способ Б: штатным ключом ragent.exe

Агент умеет снимать собственную регистрацию. Перейдите в папку bin нужной версии и выполните:

cd "C:\Program Files\1cv8\8.3.24.1586\bin"
ragent.exe -rmsrvc

Это зеркальная команда к -instsrvc, которой службу регистрируют. Она удобна, когда агент ставили вручную по стандартной схеме. Если же на машине несколько агентов с нестандартными именами служб, надёжнее способ А: там вы явно указываете, что удалять.

Способ В: PowerShell

Get-Service *1C* | Format-List Name, DisplayName, Status
Stop-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"

Командлет Remove-Service есть только в PowerShell 6 и новее. В штатном Windows PowerShell 5.1 на Windows Server 2016–2022 его нет, поэтому удаление там всё равно делают через sc.exe delete. В PowerShell пишите именно sc.exe: просто sc — это псевдоним командлета Set-Content.

СпособКогда подходитНа что смотреть
sc deleteВсегда, особенно при нескольких агентахНужно точное имя службы
ragent.exe -rmsrvcАгент ставили вручную по стандартной схемеЗапускать из папки той же версии
Удаление платформы в «Программах и компонентах»Сервер больше не нужен совсемСлужба может остаться — проверить после
Правка реестраСлужба не удаляется ни одним способомТолько после резервной копии раздела

Если платформа на сервере больше не нужна целиком, удалите её штатно через Параметры → Приложения или appwiz.cpl. Когда нужно оставить клиента, а убрать только серверную часть, запустите установщик той же версии, выберите изменение установки и снимите компонент сервера.

Шаг 4. Ручная очистка реестра Windows

В нормальной ситуации sc delete сам удаляет раздел службы в реестре. Ручная правка нужна в одном случае: служба не исчезает даже после перезагрузки, а команды возвращают ошибки.

Раздел службы находится здесь:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<имя службы>

Порядок действий:

  1. Win + R → regedit.
  2. Перейдите к разделу Services и найдите подраздел с точным именем службы агента.
  3. Щёлкните по нему правой кнопкой → Экспортировать и сохраните .reg-файл. Это ваш путь назад.
  4. Проверьте значение ImagePath — путь должен вести к ragent.exe той версии, которую вы удаляете.
  5. Удалите подраздел и перезагрузите сервер.

Перед правкой реестра сделайте резервную копию раздела или точку восстановления. Ошибка в разделе Services может уронить чужую службу, а на сервере с базами это простой для всех пользователей.

Тот же экспорт и удаление из командной строки:

reg export "HKLM\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)" C:\backup\1c-agent.reg
reg delete "HKLM\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)" /f

Больше ничего в реестре трогать не нужно. Чистить «все ключи со словом 1C» поиском — плохая идея: так легко снести настройки клиента или другой версии платформы.

Шаг 5. Какие файлы и каталоги остаются после удаления

После удаления службы на диске обычно остаётся несколько вещей. Что можно удалять, а что лучше сохранить:

ЧтоГде обычно лежитЧто делать
Каталог кластера srvinfoC:\Program Files\1cv8\srvinfo или путь из ключа -d в ImagePathСкопировать в архив, потом удалить
Папка версии платформыC:\Program Files\1cv8\8.3.xx.xxxxУдалить, если версия больше не нужна ни клиенту, ни другому агенту
Технологический журнал и дампыПуть из logcfg.xmlУдалить, если не нужны для разбора инцидента
Пользователь USR1CV8Локальные пользователи сервераУдалить, если от его имени не запущено ничего другого

Внутри srvinfo хранятся служебные данные кластера: реестр в reg_1541 и папки сеансовых данных по каждой базе. Самих данных информационных баз там нет — они на СУБД. Поэтому удаление srvinfo не уничтожает учёт, но лишает вас готового списка баз и настроек кластера.

Пользователя USR1CV8 установщик создаёт, когда сервер ставится как служба. Проверить, нужен ли он кому-то ещё, можно в services.msc: отсортируйте службы по столбцу «Вход от имени». Если пусто — удаляйте:

net user USR1CV8 /delete

Заодно проверьте правила брандмауэра. Если для сервера открывали порты 1540, 1541 и диапазон рабочих процессов, например 1560–1591, их стоит закрыть: wf.msc → правила для входящих подключений.

Диагностика: выберите симптом

Как убедиться, что агент 1С удалён полностью

Финальная проверка занимает пару минут. Выполните три команды:

sc query state= all | findstr /i "1C"
tasklist | findstr /i "ragent rmngr rphost ras"
netstat -ano | findstr ":1540 :1541 :1545"

Результат должен быть такой:

  • ✅ первая команда не показывает службу удалённого агента (агент другой версии, если вы его оставляли, остаётся в списке — это нормально);
  • ✅ вторая ничего не находит;
  • ✅ третья не показывает прослушивания портов агента, менеджера кластера и сервера администрирования.

Последний штрих — журнал событий. Откройте eventvwr.msc → Журналы Windows → Система после перезагрузки. Ошибок диспетчера управления службами про незапускающуюся службу 1С быть не должно. Если они есть, значит, где-то осталась служба RAS или вторая регистрация агента.

Если на этой же машине вы сразу ставите новую версию сервера, используйте другой порт или убедитесь, что старые 1540–1541 освободились. Новый агент на занятом порту не стартует, а в журнале появится ошибка о невозможности открыть сокет.

Частые вопросы

Удалятся ли базы 1С вместе со службой агента?
Нет. Данные клиент-серверных баз лежат на SQL Server или PostgreSQL и после удаления агента остаются на месте. Пропадает только регистрация баз в кластере, её восстанавливают заново на новом сервере.
Можно ли удалить агент одной версии и оставить другую?
Да. Каждая регистрация — отдельная служба со своим именем и путём к ragent.exe. Удаляйте ту, у которой в «Исполняемом файле» папка ненужной версии, а папку платформы стирайте только если её не использует второй агент.
Нужна ли перезагрузка сервера после sc delete?
Обычно нет: служба пропадает сразу. Перезагрузка нужна, если появилась ошибка 1072 или после ручного удаления раздела в реестре.
Как вернуть службу, если удалил по ошибке?
Зарегистрируйте агент заново командой ragent.exe -instsrvc из папки bin нужной версии с прежними портами и каталогом srvinfo. Если каталог сохранился, кластер поднимется со всеми базами.
Что делать с лицензиями сервера при удалении?
Программная лицензия на сервер привязана к параметрам компьютера. Если сервер переезжает на другую машину, лицензию придётся активировать там заново по правилам вашего лицензионного соглашения, а при исчерпании резервных пин-кодов — обращаться к партнёру 1С.