Служба сервера 1С осталась после удаления платформы: как убрать её из Windows

· 9 мин

Содержание

Чтобы полностью удалить службу 1С, остановите её, узнайте точное имя в свойствах службы и выполните в командной строке от имени администратора sc delete "<имя службы>". Если службу регистрировали средствами самой 1С, её можно снять командой ragent.exe -rmsrvc из папки bin нужной версии. Чистка реестра — запасной вариант, когда команды не срабатывают.

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

Почему служба 1С остаётся после удаления программы

Установщик платформы снимает службу только ту, которую сам создал, и только при удалении той же версии. Во всех остальных случаях служба переживает деинсталляцию.

Частые причины:

  • 🔁 Несколько версий платформы. Служба указывает на ragent.exe версии 8.3.22, а удалили 8.3.24. Или наоборот: удалили версию, на которую служба ссылалась, но установщик не смог её снять.
  • 🛠 Ручная регистрация. Администратор создавал службу командой ragent -instsrvc или sc create — например, второй кластер на порту 2540. Установщик про такую службу не знает.
  • 📦 Сервер хранилища и RAS. Службы crserver.exe (сервер хранилища конфигураций) и ras.exe (сервер администрирования) почти всегда регистрируют вручную. Их удаление платформы не трогает.
  • 🗑 Папку удалили руками. Каталог C:\Program Files\1cv8\<версия> стёрли без деинсталлятора. Запись о службе в Windows осталась, а исполняемого файла уже нет.
  • ⛔ Сбой деинсталляции. Служба была запущена или занята, установщик пропустил шаг удаления.

Какой способ выбрать:

СпособКогда подходитРиски
Оснастка «Службы»Нужно временно выключить, не удаляяСлужба не удаляется, только отключается
sc deleteОсновной способ для любой службы 1СОшибка в имени — удалите чужую службу
ragent -rmsrvc / crserver -rmsrvcСлужбу создавали средствами 1С, файлы на местеНужна та же версия платформы
РеестрКоманды не срабатывают, файлов уже нетОшибка в реестре ломает Windows
Установщик платформыУбрать компонент сервера целикомУдаляет и другие компоненты версии

Подготовка: как узнать точное имя службы 1С и что сохранить

Отображаемое имя и имя службы — разные вещи. Команды работают только с именем службы. У 64-битного сервера 8.3 оно обычно выглядит как 1C:Enterprise 8.3 Server Agent (x86-64), но при ручной регистрации может быть любым.

Найдите все службы 1С одной командой PowerShell:

Get-CimInstance Win32_Service |
  Where-Object { $_.PathName -match 'ragent\.exe|crserver\.exe|ras\.exe' } |
  Format-List Name, DisplayName, State, StartMode, PathName

Поле Name — это то, что нужно для удаления. Поле PathName показывает путь к исполняемому файлу и параметры запуска. По параметрам -port и -regport отличите основной кластер от дополнительного, если служб несколько.

Перед удалением сохраните:

  1. Каталог данных кластера. Путь к нему указан в PathName после ключа -d, по умолчанию это C:\Program Files\1cv8\srvinfo. Внутри лежит список кластеров и зарегистрированных баз. Скопируйте папку целиком — пригодится, если сервер будут ставить заново.
  2. Список информационных баз кластера с именами баз на сервере СУБД. Их удобно выписать из консоли администрирования серверов 1С.
  3. Пароль служебной учётной записи, если планируете переустановку.

Остановка службы агента обрывает все сеансы пользователей на этом сервере. Делайте это вне рабочего времени и предупредите людей заранее.

Сами базы при удалении службы не пропадают. Клиент-серверные базы живут на сервере СУБД (PostgreSQL, MS SQL), файловые — в своих каталогах.

Способ 1. Остановить и отключить службу 1С в оснастке «Службы»

Оснастка Windows не умеет удалять службы. Зато через неё удобно остановить службу, запретить автозапуск и посмотреть её параметры. С этого шага начинается любой из способов ниже.

  1. Нажмите Win + R, введите services.msc, нажмите Enter.
  2. Отсортируйте список по имени и найдите строки, начинающиеся с «1C:Enterprise».
  3. Откройте службу двойным щелчком. На вкладке «Общие» посмотрите поля «Имя службы» и «Исполняемый файл».
  4. Нажмите «Остановить» и дождитесь статуса «Остановлена».
  5. В поле «Тип запуска» выберите «Отключена», нажмите «Применить».
  6. Закройте окно свойств и саму оснастку «Службы».

Последний шаг не формальность. Открытая оснастка держит дескриптор службы, и sc delete потом не доведёт удаление до конца.

💡 Если удаление пока не нужно — например, сервер переносят и через неделю могут вернуть — отключённая служба безопасна. Она не стартует после перезагрузки и не занимает порты 1540, 1541 и диапазон рабочих процессов.

Если служба не останавливается и висит в статусе «Остановка», завершите процессы вручную в командной строке администратора:

taskkill /f /im rphost.exe
taskkill /f /im rmngr.exe
taskkill /f /im ragent.exe

Эти команды мгновенно убивают все рабочие процессы сервера. Несохранённые данные пользователей пропадут.

Способ 2. Удаление службы 1С через командную строку

Команда sc delete

Это основной и самый надёжный способ.

  1. Откройте командную строку от имени администратора: меню «Пуск», введите cmd, правой кнопкой — «Запуск от имени администратора».
  2. Остановите службу:
sc stop "1C:Enterprise 8.3 Server Agent (x86-64)"
  1. Удалите её:
sc delete "1C:Enterprise 8.3 Server Agent (x86-64)"
  1. Ответ [SC] DeleteService: успех означает, что служба помечена к удалению. Если ничего её не держит, она исчезает из списка сразу.

Имя обязательно в кавычках: в нём есть пробелы и двоеточие.

В PowerShell пишите sc.exe, а не sc. Там sc — псевдоним команды Set-Content, и вместо удаления службы вы получите пустой файл в текущей папке.

В PowerShell 7 есть отдельная команда Remove-Service -Name "<имя>". В Windows PowerShell 5.1, который встроен в Windows Server 2016–2022, её нет — используйте sc.exe delete.

Штатные ключи ragent и crserver

Если исполняемые файлы на месте, службу можно снять тем же инструментом, которым её создавали:

"C:\Program Files\1cv8\<версия>\bin\ragent.exe" -rmsrvc
"C:\Program Files\1cv8\<версия>\bin\crserver.exe" -rmsrvc

Путь берите из поля «Исполняемый файл» службы — версия должна совпадать. Ключ -rmsrvc снимает службу со стандартным именем. Для службы, созданной под нестандартным именем (второй кластер, отдельный RAS), надёжнее sc delete с точным именем.

У ras.exe своего ключа удаления нет: его службу почти всегда создают через sc create, и удаляют так же — через sc delete.

Способ 3. Как удалить службу 1С через реестр Windows

Этот путь нужен, когда sc delete возвращает ошибку, а файлы платформы уже стёрты. Все службы Windows описаны в ветке:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

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

  1. Сохраните копию раздела службы в файл:
reg export "HKLM\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)" C:\backup\1c-agent-service.reg
  1. Запустите regedit от имени администратора и перейдите в ветку Services.
  2. Найдите раздел с точным именем службы. Убедитесь, что параметр ImagePath внутри указывает на ragent.exe, crserver.exe или ras.exe.
  3. Удалите раздел целиком: правая кнопка — «Удалить».
  4. Перезагрузите компьютер. Без перезагрузки диспетчер служб продолжит показывать службу.

Тот же шаг одной командой:

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

Удаляйте только раздел конкретной службы 1С. Соседние разделы в Services — драйверы и системные службы. Ошибка здесь может закончиться тем, что Windows не загрузится.

Если раздел не удаляется из-за прав, проверьте, что regedit запущен от администратора, и что служба остановлена.

Способ 4. Удалить сервер 1С штатным установщиком платформы

Когда задача шире — убрать с машины весь сервер 1С, а не одну запись службы, — работайте через установщик. Он снимет службу, удалит файлы и запись в списке программ.

Убрать только компонент сервера

  1. Откройте «Параметры» → «Приложения» или классические «Программы и компоненты» (appwiz.cpl).
  2. Найдите строку «1С:Предприятие 8 (x86-64)» нужной версии — номер версии указан в названии.
  3. Нажмите «Изменить».
  4. В мастере выберите изменение состава компонентов и снимите отметку с сервера 1С:Предприятия.
  5. Клиентские компоненты оставьте, если с этой машины ещё работают пользователи.

Удалить версию платформы без диалогов

На серверах без графического доступа удобнее тихий режим. Найдите код продукта:

$paths = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
         'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
Get-ItemProperty $paths |
  Where-Object { $_.DisplayName -match '1C|1С|Предприятие' } |
  Select-Object DisplayName, DisplayVersion, PSChildName

PSChildName в фигурных скобках — код продукта. Удалите версию:

msiexec /x {КОД-ПРОДУКТА} /qn /norestart /l*v C:\backup\1c-uninstall.log

Журнал 1c-uninstall.log покажет, что именно удалено и на каком шаге возникла ошибка, если она была.

Тихое удаление снимает всю версию платформы, включая толстый и тонкий клиент. Если на сервере открыты сеансы этой версии, они оборвутся.

Проверка результата и разбор ошибок при удалении службы

Проверьте, что службы больше нет:

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

Правильный ответ — ошибка 1060 «Указанная служба не установлена». Затем убедитесь, что порты освободились:

netstat -ano | findstr ":1540 :1541"

Пустой вывод — порты свободны, новую версию сервера можно ставить на стандартные настройки.

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

Скрипт для массового удаления служб 1С

На серверах, где годами ставили версии поверх друг друга, служб бывает пять-шесть. Скрипт ниже находит все службы по исполняемым файлам 1С, показывает их и удаляет после подтверждения.

# Запускать в PowerShell от имени администратора
$services = Get-CimInstance Win32_Service |
  Where-Object { $_.PathName -match 'ragent\.exe|crserver\.exe|ras\.exe' }

if (-not $services) { Write-Host 'Службы 1С не найдены'; return }

$services | Format-Table Name, State, PathName -AutoSize -Wrap

$answer = Read-Host 'Удалить все перечисленные службы? (да/нет)'
if ($answer -ne 'да') { Write-Host 'Отменено'; return }

foreach ($s in $services) {
    if ($s.State -ne 'Stopped') {
        Stop-Service -Name $s.Name -Force -ErrorAction SilentlyContinue
    }
    sc.exe delete "$($s.Name)"
}

Как пользоваться:

  1. Сохраните код в файл remove-1c-services.ps1.
  2. Если политика запрещает скрипты, запустите его так: powershell -ExecutionPolicy Bypass -File .\remove-1c-services.ps1.
  3. Проверьте таблицу перед ответом «да». Если в ней служба, которую нужно сохранить, ответьте «нет» и удалите лишние службы по одной через sc delete.

💡 Чтобы удалить только службы конкретной версии, добавьте её номер в фильтр: например, -match '8\.3\.22.*ragent\.exe'.

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

Удалятся ли информационные базы вместе со службой 1С?
Нет. Служба — это только запуск агента сервера. Базы остаются на сервере СУБД или в каталоге файловой базы. Удаляется лишь регистрация баз в кластере, если вы сотрёте папку srvinfo.
Можно ли удалить пользователя USR1CV8?
Да, если сервер 1С на машине больше не нужен. Это локальная учётная запись, которую создаёт установщик для запуска службы. Удаляется командой net user USR1CV8 /delete от администратора.
Нужно ли удалять службу PostgreSQL или HASP вместе со службой 1С?
Это отдельные программы. PostgreSQL удаляйте, только если на нём нет других баз. Служба менеджера лицензий HASP нужна, пока используются аппаратные ключи защиты.
Как удалить вторую службу 1С и не задеть основную?
Сравните параметр -port в пути исполняемого файла. У основного кластера обычно 1540, у дополнительного — другой номер. Удаляйте через sc delete с точным именем нужной службы.
Что делать, если служба вернулась после перезагрузки?
Скорее всего, служба не удалилась, а осталась отмеченной к удалению, или её пересоздаёт скрипт развёртывания или групповая политика. Проверьте ветку реестра Services и задания планировщика.