Служба агента сервера 1С осталась в списке: убираем её чисто и без последствий
Содержание
Чтобы удалить службу 1С:Агент сервера из списка служб Windows, остановите её и выполните в командной строке от имени администратора sc delete "<имя службы>". Имя берите не из колонки «Имя» в оснастке services.msc, а из поля «Имя службы» в её свойствах. Если служба не исчезает, закройте оснастку «Службы» и обновите список: Windows держит службу в состоянии «помечена для удаления», пока к ней открыт хотя бы один дескриптор.
Обычно это нужно после удаления старой версии платформы, когда в списке осталась «мёртвая» служба с путём к несуществующему ragent.exe. Ещё один частый случай — на сервере стоят две версии и две службы агента дерутся за порт 1540. В обоих случаях удаление делается без потери настроек кластера и с возможностью откатиться.
Что проверить до удаления службы агента
Агент сервера (ragent.exe) — это вход в кластер. Клиенты обращаются к нему на порт 1540, он передаёт их менеджеру кластера (rmngr.exe, порт 1541), а тот — рабочим процессам (rphost.exe). Остановили агента — остановился весь кластер на этом сервере.
Остановка службы обрывает сеансы всех пользователей на этом сервере. Делайте это вне рабочего времени или после того, как предупредили людей и они вышли из баз.
Перед началом соберите четыре факта:
- 🔍 Точное имя службы. Откройте
Win+R → services.msc, найдите службу с «1C:Enterprise 8.3 Server Agent» в названии, откройте свойства. Строка «Имя службы» на вкладке «Общие» — то, что нужно для команд. - 📂 Путь к исполняемому файлу. Там же, поле «Исполняемый файл». В нём видна версия платформы (каталог вида
C:\Program Files\1cv8\8.3.24.1467\bin\) и параметры запуска. - 🗂️ Каталог кластера. Это значение параметра
-dв строке запуска. По нему служба хранит реестр кластера, список баз и сеансовые данные. - 🔌 Порты. Параметры
-port,-regport,-range. Если вы потом ставите службу заново, их стоит повторить.
Список всех служб 1С в системе удобно вывести одной командой:
sc query state= all | findstr /i "1C"
В PowerShell то же самое, плюс состояние и тип запуска:
Get-Service | Where-Object { $_.DisplayName -like "*1C*" } | Format-Table Name, DisplayName, Status, StartType -AutoSize
Сохраните описание службы до удаления
Это единственный шаг, который даёт быстрый откат. Выгрузите ключ службы из реестра в файл:
reg export "HKLM\SYSTEM\CurrentControlSet\Services\<имя службы>" C:\backup\ragent-service.reg
Если имя службы содержит пробелы и скобки, оставьте кавычки как в примере. Файл занимает пару килобайт, а восстановление из него займёт минуту.
Удаление службы агента сервера 1С командой sc delete
Это основной способ. Он не трогает файлы платформы и каталог кластера — только убирает запись о службе.
Шаг 1. Остановите службу
Откройте командную строку от имени администратора: Пуск, наберите cmd, правой кнопкой — «Запуск от имени администратора». Затем:
sc stop "1C:Enterprise 8.3 Server Agent (x86-64)"
sc query "1C:Enterprise 8.3 Server Agent (x86-64)"
Имя в примере — типовое для 64-битного сервера. У вашей службы оно может отличаться, подставьте своё из свойств.
Дождитесь, пока в выводе sc query появится STATE : 1 STOPPED. Агент при остановке гасит менеджер кластера и рабочие процессы, на большом кластере это занимает до минуты.
Шаг 2. Удалите запись службы
sc delete "1C:Enterprise 8.3 Server Agent (x86-64)"
Успешный ответ — [SC] DeleteService SUCCESS. Нужен пробел после знака равенства в командах sc с параметрами (state= all): без него команда не сработает. В sc delete параметров нет, нужен только сам аргумент.
Шаг 3. Проверьте результат
Закройте и снова откройте services.msc, нажмите F5. Службы в списке быть не должно. Для контроля из консоли:
sc query "1C:Enterprise 8.3 Server Agent (x86-64)"
Ответ [SC] EnumQueryServicesStatus:OpenService FAILED 1060 означает, что такой службы больше нет.
Альтернатива: ключ -rmsrvc у самого агента
Агент умеет снимать свою регистрацию сам. Перейдите в каталог bin той версии, которой принадлежит служба, и выполните:
cd /d "C:\Program Files\1cv8\8.3.24.1467\bin"
ragent.exe -rmsrvc
Способ хорош, когда файлы версии ещё на месте. Если платформу уже удалили и ragent.exe нет, остаётся sc delete.
| Способ | Когда подходит | Риски |
|---|---|---|
sc delete | Всегда, в том числе если файлы платформы удалены | Нужно точное имя службы |
ragent.exe -rmsrvc | Версия платформы установлена, файлы целы | Запуск не из той версии снимет не ту службу |
| Удаление компонента в установщике | Убираете сервер этой версии целиком | Удаляются и файлы версии |
| Правка реестра вручную | Первые два способа не сработали | Ошибка в ключе может повредить другую службу |
Если вы удаляете версию платформы целиком, проще идти через Параметры → Приложения (или Программы и компоненты): удаление версии с сервером 1С снимает и её службу. Отдельная ручная очистка нужна, когда служба осталась после неудачного удаления.
Если sc не помогает: удаление записи службы через реестр
Ручная правка реестра — крайний вариант. Применяйте её, когда sc delete возвращает ошибку, а служба при этом висит в списке с неверным путём.
Создайте точку восстановления Windows или хотя бы выгрузите ключ, как в разделе выше. Удаление не того раздела в Services может вывести из строя системную службу или драйвер.
Порядок:
- Запустите
regeditот имени администратора. - Перейдите в раздел
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. - Найдите подраздел с точным именем службы агента. Сверьтесь со значением
ImagePathсправа: там должен быть путь кragent.exe. - Правой кнопкой по подразделу — «Удалить».
- Перезагрузите сервер. Диспетчер служб читает этот раздел при старте, поэтому без перезагрузки служба из списка может не пропасть.
Удалять что-то ещё в реестре не требуется. Платформа не хранит настройки кластера в реестре — они лежат в каталоге кластера на диске.
Что остаётся на диске после удаления службы и как это вычистить
Служба удалена, но её «хвосты» остались. Решите, нужны ли они вам, прежде чем удалять.
Каталог кластера srvinfo
Это каталог из параметра -d. По умолчанию — srvinfo внутри каталога установки 1cv8 или профиля пользователя, от имени которого работала служба. В нём:
- 📄
1CV8Clst.lst— реестр кластера: список информационных баз, их параметры подключения к СУБД, рабочие серверы, администраторы; - 📁 подкаталоги
reg_1541(номер равен порту менеджера кластера) с сеансовыми данными и журналами регистрации баз; - 🧹 сеансовые и временные данные, которые можно безболезненно потерять.
Не удаляйте srvinfo, если на этом сервере будет работать новая версия с тем же кластером. Без 1CV8Clst.lst кластер «забудет» все базы. Сами базы в SQL Server или PostgreSQL не пострадают, но регистрировать каждую в консоли придётся заново, а журналы регистрации пропадут.
Если сервер выводится из эксплуатации совсем — заархивируйте каталог и только потом удаляйте.
Пользователь службы
Установщик по умолчанию заводит локального пользователя USR1CV8. Если других служб 1С на сервере нет, его можно удалить в lusrmgr.msc или командой:
net user USR1CV8 /delete
Перед этим проверьте, что ни одна служба не работает
от его имени: в services.msc отсортируйте список по колонке «Вход от имени».
Переменные окружения, брандмауэр, файлы версии
Установщик платформы не прописывает свои каталоги в PATH. Но администраторы часто добавляют туда путь к bin, чтобы вызывать rac и ragent без полного пути. Проверьте Система → Дополнительные параметры системы → Переменные среды: путь к удалённой версии оттуда нужно убрать, иначе консоль будет искать утилиты в пустом каталоге.
Заодно посмотрите правила брандмауэра Windows (wf.msc) для портов 1540, 1541 и диапазона 1560–1591. Если их создавали вручную под этот сервер, а сервер больше не нужен — отключите их. Каталог версии C:\Program Files\1cv8\<версия> после удаления через «Программы и компоненты» обычно исчезает сам. Если он остался пустым или с журналами, его можно удалить.
Почему служба 1С не останавливается и не удаляется: разбор ошибок
Как завершить зависший агент вручную
Если служба застряла в STOP_PENDING, узнайте номер процесса:
sc queryex "1C:Enterprise 8.3 Server Agent (x86-64)"
В выводе есть строка PID. Завершите процесс и его дочерние процессы кластера:
taskkill /f /pid <PID>
taskkill /f /im rmngr.exe
taskkill /f /im rphost.exe
Принудительное завершение rphost.exe обрывает все сеансы без сохранения. Незаписанные документы пользователей будут потеряны, а фоновые задания прервутся на середине. Если на сервере работают две версии платформы, /im завершит процессы обеих — тогда завершайте по PID каждый процесс отдельно.
После этого sc delete срабатывает с первого раза.
Конфликт двух агентов на одном порту
Типичная причина, по которой службу вообще хотят удалить, — после обновления платформы одна служба запускается, а вторая падает. В журнале Windows (eventvwr.msc → Журналы Windows → Приложение) видно, что порт 1540 занят. Кто его держит, покажет:
netstat -ano | findstr :1540
Последнее число в строке — PID. Сверьте его со службами через sc queryex. Старую службу удаляйте, новую оставляйте; если обе нужны, второй задают другие порты (например, 2540, 2541 и диапазон 2560:2591).
Как вернуть службу агента, если удалили не ту
Ошибиться легко: на сервере с двумя версиями имена служб отличаются одним номером. Вариантов восстановления три — от быстрого к ручному.
Регистрация службы через ragent
Команда выполняется из каталога bin нужной версии. Пример для типовых портов:
cd /d "C:\Program Files\1cv8\8.3.24.1467\bin"
ragent.exe -instsrvc -usr .\USR1CV8 -pwd "Пароль" -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Затем запустите службу:
ragent.exe -start
Если -d указывает на старый каталог кластера, после старта откройте консоль администрирования серверов: базы должны быть на месте.
Регистрация через sc create
Подходит, когда нужно задать своё имя службы. Строка запуска агента в службе содержит ключи -srvc -agent:
sc create "1C:Enterprise 8.3 Server Agent (x86-64)" binPath= "\"C:\Program Files\1cv8\8.3.24.1467\bin\ragent.exe\" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d \"C:\Program Files\1cv8\srvinfo\"" start= auto obj= ".\USR1CV8" password= "Пароль"
Пользователю службы нужны права на каталог кластера и право «Вход в качестве службы». Если служба не стартует с ошибкой 1069, дело именно в нём: проверьте пароль и это право в secpol.msc → Локальные политики → Назначение прав пользователя.
Частые вопросы
Удалятся ли базы, если удалить службу агента сервера?
ragent.exe. Список баз кластера хранится в каталоге srvinfo, пока вы его не удалили.Можно ли просто отключить службу вместо удаления?
Почему в PowerShell нет команды Remove-Service?
sc.exe delete — именно с .exe, иначе sc воспримется как псевдоним Set-Content.Нужно ли удалять службу удалённого администрирования ras?
sc delete. Служба ras не создаётся установщиком автоматически, её обычно добавляют вручную, поэтому имя у неё произвольное.Как убрать службу агента на Linux?
systemctl list-units --all | grep 1c, затем выполните systemctl stop и systemctl disable для найденного имени. Файлы юнита удаляются вместе с пакетом сервера.