Удаление агента сервера 1С с Windows без хвостов в системе
Содержание
Службу агента сервера 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». Дважды щёлкните по ней и посмотрите два поля на вкладке «Общие»:
- Имя службы — его и подставляете в команды. Отображаемое имя для
scне годится. - Исполняемый файл — полный путь к
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 — или запустите службу снова на время разбора.
Что сделать в консоли:
- Раскройте
Central 1C:Enterprise 8.3 servers→ ваш сервер →Кластеры→ кластер →Информационные базы. - Перепишите для каждой базы её параметры: в свойствах видно имя базы на СУБД, тип СУБД и сервер баз данных.
- Если базы переезжают на другой кластер — сначала зарегистрируйте их там и проверьте вход. Только потом удаляйте регистрацию здесь, с вариантом «Оставить базу данных без изменений».
Если консоль не открывается, список баз можно получить через утилиту 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\<имя службы>
Порядок действий:
Win + R→regedit.- Перейдите к разделу
Servicesи найдите подраздел с точным именем службы агента. - Щёлкните по нему правой кнопкой →
Экспортироватьи сохраните.reg-файл. Это ваш путь назад. - Проверьте значение
ImagePath— путь должен вести кragent.exeтой версии, которую вы удаляете. - Удалите подраздел и перезагрузите сервер.
Перед правкой реестра сделайте резервную копию раздела или точку восстановления. Ошибка в разделе 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. Какие файлы и каталоги остаются после удаления
После удаления службы на диске обычно остаётся несколько вещей. Что можно удалять, а что лучше сохранить:
| Что | Где обычно лежит | Что делать |
|---|---|---|
Каталог кластера srvinfo | C:\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 освободились. Новый агент на занятом порту не стартует, а в журнале появится ошибка о невозможности открыть сокет.