Удаляем эмулятор ключа 1С и всё, что он оставил в системе

· 9 мин

Содержание

Чтобы почистить следы эмуляторов 1С, мало удалить программу через «Программы и компоненты». Эмулятор ключа почти всегда ставит драйвер виртуальной USB-шины и службу, переводит 64-битную Windows в тестовый режим подписи драйверов и оставляет в реестре дамп ключа. Пока всё это на месте, настоящий ключ HASP может не определяться, а платформа выдаёт Не обнаружена лицензия для использования программы.

Частое заблуждение — «переустановлю 1С, и хватит». Платформа здесь ни при чём: следы живут в драйверах Windows, в хранилище драйверов и в реестре. Ниже — порядок, в котором их удаляют, плюс отдельно виртуальные машины и контейнеры, если пробная или «серая» сборка жила там.

Инструкция для перехода на легальную лицензию: вы удаляете постороннее ПО, чтобы заработал купленный ключ или программная лицензия. Использование эмулятора — нарушение исключительных прав (ГК РФ, КоАП ст. 7.12, в крупном размере — УК РФ ст. 146). Наш справочник независимый и не связан с фирмой 1С.

Что именно мог оставить эмулятор: опись перед чисткой

Начните с описи. Так вы ничего не пропустите и не удалите лишнего, например драйвер настоящего ключа.

Типичные следы эмулятора на компьютере или сервере:

  • 🔌 Виртуальное устройство в «Диспетчере устройств» — виртуальная USB-шина или «виртуальный USB-ключ» в разделе системных устройств или контроллеров USB.
  • ⚙️ Служба драйвера — запускается при старте системы, видна через sc query type= driver.
  • 📦 Пакет драйвера в хранилище Windows (oemNN.inf) — из-за него устройство возвращается после перезагрузки.
  • 🗝️ Ветка реестра с дампом ключа — обычно внутри раздела службы эмулятора.
  • 🧪 Тестовый режим Windows — надпись «Тестовый режим» в правом нижнем углу рабочего стола.
  • 📁 Подменённые файлы платформы в каталоге C:\Program Files\1cv8\<версия>\bin — в «вылеченных» сборках.
  • 🖥️ Виртуальные машины и контейнеры, где стояла такая сборка.

Сначала закройте 1С у всех пользователей. На сервере с HASP-менеджером остановка драйвера оборвёт сеансы, которые держат лицензии с сетевого ключа. Делайте это в нерабочее время.

Соберите сведения в текстовый файл — пригодится, если что-то пойдёт не так:

:: запустить командную строку от имени администратора
pnputil /enum-drivers > C:\temp\drivers.txt
sc query type= driver state= all > C:\temp\services.txt
bcdedit /enum > C:\temp\bcd.txt

В drivers.txt ищите пакеты, у которых в поле поставщика нет известного производителя. Драйвер настоящего ключа выпускает Thales (раньше SafeNet, Aladdin) — его не трогаем, только если не решили переставить начисто.

Виртуальные машины и образы дисков с «вылеченной» 1С

Если эмулятор ставили внутрь виртуальной машины для теста, проще всего удалить машину целиком. Чистить такую систему вручную дольше, чем развернуть новую.

СредаКак удалить машину вместе с дисками
Hyper-VДиспетчер Hyper-V → машина → «Удалить», затем вручную удалить файлы .vhdx (Hyper-V сам их не стирает)
VirtualBoxVBoxManage unregistervm "Имя ВМ" --delete или в менеджере «Удалить» → «Удалить все файлы»
VMware WorkstationМеню машины → «Управление» → «Удалить с диска»

Затем проверьте, что не осталось:

  1. Снимков (snapshots) и разностных дисков — у Hyper-V это файлы .avhdx рядом с основным диском.
  2. Образов .iso и .vmdk, скачанных вместе со сборкой. Их легко найти поиском по папке «Загрузки».
  3. Резервных копий этой машины в системе бэкапа. Иначе через полгода её кто-нибудь восстановит.

Если в машине лежит нужная база, сначала выгрузите её: Конфигуратор → Администрирование → Выгрузить информационную базу в файл .dt. Файл базы не содержит эмулятора, его безопасно переносить на чистую систему.

Контейнеры Docker с сервером 1С

Готовые образы сервера 1С из непроверенных источников — тот же риск, что и «вылеченная» сборка. Бинарные файлы внутри могут быть изменены. Правильный путь — удалить такой образ и собрать свой из официального дистрибутива платформы.

Порядок очистки на хосте:

# какие контейнеры есть, включая остановленные
docker ps -a

# остановить и удалить контейнер
docker stop srv1c && docker rm srv1c

# найти и удалить образ
docker images
docker rmi <ID_образа>

# тома с данными сервера 1С
docker volume ls
docker volume rm <имя_тома>

Перед docker volume rm убедитесь, что в томе нет единственной копии базы. Удалённый том не восстановить.

Когда все лишние контейнеры убраны, хвосты сборки снимает docker system prune -a. Команда удаляет все неиспользуемые образы, а не только 1С. На хосте, где крутятся другие сервисы, лучше удалять образы точечно через docker rmi.

Удаление драйверов эмуляции ключа защиты

Это главный этап. Если пропустить его, настоящий ключ HASP часто не видится, хотя драйвер Sentinel установлен.

Шаг 1. Удалить виртуальное устройство

  1. Откройте «Диспетчер устройств» (devmgmt.msc).
  2. Включите Вид → Показать скрытые устройства — устройство эмулятора без драйвера бывает серым.
  3. Найдите виртуальную шину или виртуальный ключ в «Системных устройствах» и «Контроллерах USB».
  4. Правой кнопкой → «Удалить устройство», поставьте флажок удаления драйвера, если он предложен.

Шаг 2. Удалить пакет из хранилища драйверов

Без этого Windows поставит устройство заново при следующем запуске. Найдите в drivers.txt нужный oemNN.inf и выполните:

pnputil /delete-driver oem42.inf /uninstall /force

Номер oem42 — пример, у вас будет свой. Проверьте его по полям «Исходное имя» и «Поставщик» в выводе pnputil /enum-drivers.

Шаг 3. Удалить службу

Служба драйвера может остаться и после удаления пакета. Посмотрите её имя в services.txt, затем:

sc stop <имя_службы>
sc delete <имя_службы>

Если sc stop отвечает, что служба не может быть остановлена, выполните sc delete и перезагрузите компьютер — служба удалится при старте.

Шаг 4. Выключить тестовый режим

Неподписанный драйвер эмулятора на 64-битной Windows работает только в тестовом режиме. Верните нормальную проверку подписи:

bcdedit /set testsigning off

После перезагрузки надпись «Тестовый режим» исчезнет. Проверьте, что Secure Boot в BIOS/UEFI не отключали специально под эмулятор — если отключали, включите обратно.

Шаг 5. Переустановить драйвер настоящего ключа

Драйвер Sentinel лучше переставить начисто: эмулятор мог подменить или «прицепиться» к его службе. Утилита haspdinst.exe из комплекта драйвера:

haspdinst.exe -r
:: перезагрузка
haspdinst.exe -i

Ключ -r удаляет драйвер, -i ставит. Полный список параметров выводит haspdinst.exe -help. Берите драйвер с сайта производителя или с диска поставки.

Очистка реестра Windows от следов эмулятора и 1С

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

Перед правкой реестра создайте точку восстановления: Win + R → sysdm.cpl → вкладка «Защита системы» → «Создать».

Что проверить в regedit:

ГдеЧто искатьДействие
HKLM\SYSTEM\CurrentControlSet\Services\<служба эмулятора>Раздел службы, внутри — подразделы с дампами ключейУдалить раздел, если sc delete его не убрал
HKLM\SYSTEM\CurrentControlSet\Enum\RootЗаписи виртуального устройстваОбычно уходят сами после шага 1; вручную не удаляйте — они защищены правами
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run и HKCU\...\RunАвтозагрузка «помощников» эмулятораУдалить чужие записи

Поиск Ctrl + F по имени службы эмулятора находит оставшиеся упоминания. Записи с названием 1C или 1cv8 подряд не удаляйте: там настройки установленной платформы и списка баз.

Отдельно откройте файл C:\Windows\System32\drivers\etc\hosts в «Блокноте» от имени администратора. Некоторые сборки дописывают туда строки, перенаправляющие адреса на 127.0.0.1. Удалите строки, которые вы не добавляли сами.

Временные файлы, кэш и журналы

После чистки системы сбросьте то, что 1С накопила, пока работала с эмулятором. Кэш сам по себе безвреден, но старые метаданные мешают при первом запуске с настоящей лицензией.

  1. Кэш конфигураций пользователя — папки с длинными именами-идентификаторами в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Сам файл списка баз ibases.v8i лежит в %APPDATA%\1C\1CEStart — его не удаляйте.
  2. Запуск с очисткой кэша — параметр /ClearCache в строке запуска или в дополнительных параметрах базы в окне запуска.
  3. Технологический журнал — если в каталоге conf платформы лежит logcfg.xml, его включали для отладки. Удалите файл и папку логов, указанную внутри.
  4. Временные файлы Windows — %TEMP% и C:\Windows\Temp, утилита «Очистка диска» (cleanmgr).
  5. Сервер 1С — сеансовые данные лежат в каталоге кластера (по умолчанию srvinfo). Чистку сеансовых данных делают только при остановленной службе агента сервера, когда в базах никто не работает .

Не удаляйте папку srvinfo целиком — там реестр кластера со списком баз. Если кластер ломается, восстановление из копии займёт часы.

Если эмулятор стоял на сервере с сетевым ключом

На сервере ошибка в порядке действий стоит дороже: без лицензий останутся все пользователи сразу. Поэтому план работ лучше расписать заранее и согласовать окно простоя.

Рабочий порядок для сервера 1С с менеджером лицензий:

  1. Предупредите пользователей и назначьте время, например вечер пятницы. Оборвутся все сеансы, несохранённые документы пропадут.
  2. Выгрузите базы в .dt или сделайте резервные копии средствами СУБД.
  3. Заблокируйте начало сеансов: в консоли администрирования серверов в свойствах базы есть флажок блокировки начала сеансов.
  4. Остановите службу агента сервера 1С через services.msc.
  5. Выполните шаги удаления устройства, драйвера, службы и тестового режима, затем перезагрузите сервер.
  6. Переустановите драйвер Sentinel, подключите настоящий ключ, проверьте его в localhost:1947.
  7. Запустите службу агента, снимите блокировку сеансов и войдите в базу сами, прежде чем пускать людей.

Если ключ раздаётся по сети, проверьте на двух-трёх клиентских компьютерах, что они получают лицензию. На клиентах эмулятор тоже могли поставить «на всякий случай» — пройдите по ним тем же списком.

Проверка платформы и лицензии после очистки

Последний шаг — убедиться, что платформа «родная», а ключ виден.

Подпись файлов платформы

«Вылеченные» сборки меняют исполняемые файлы, и подпись разработчика на них ломается. Проверка в PowerShell:

Get-ChildItem "C:\Program Files\1cv8\8.3.*\bin\*.dll", "C:\Program Files\1cv8\8.3.*\bin\*.exe" |
  Get-AuthenticodeSignature |
  Where-Object Status -ne 'Valid' |
  Select-Object Path, Status

Пустой вывод — все файлы подписаны. Если в списке есть строки, удалите эту версию платформы через «Программы и компоненты», удалите оставшуюся папку версии и поставьте дистрибутив заново.

Ключ и лицензия

  • 🔑 Аппаратный ключ: откройте в браузере http://localhost:1947 — это Sentinel Admin Control Center. В разделе ключей должен быть ваш ключ. Для сетевого ключа проверьте, что клиентам доступен порт 475.
  • 📄 Программная лицензия: файлы .lic хранятся в C:\ProgramData\1C\licenses. Чужих файлов, которые вы не активировали, там быть не должно.
  • ▶️ Запуск базы: войдите в 1С и откройте Справка → О программе. Там видно, какую лицензию получил сеанс.
После чистки — контроль
Выполнено: 0 / 6

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

Можно ли оставить эмулятор, если куплен настоящий ключ?
Нет. Даже при купленной лицензии эмулятор остаётся нелицензионным ПО на компьютере, а его драйвер конфликтует с драйвером Sentinel. Удалите его полностью.
Ключ всё равно не определяется после чистки. Что ещё проверить?
Вставьте ключ в другой порт USB напрямую, без разветвителя. Посмотрите, горит ли светодиод на ключе. Если ключ виден в localhost:1947, но не в 1С, проверьте файл nethasp.ini в каталоге conf платформы — в нём могли остаться чужие адреса серверов ключей.
Антивирус ругается на файлы в папке платформы. Это следы эмулятора?
Возможно. Подменённые библиотеки часто определяются как потенциально опасные. Переустановите платформу из официального дистрибутива и снова проверьте подписи.
Нужно ли переустанавливать Windows?
Обычно нет. Если после всех шагов в системе остаются неизвестные службы и драйверы, а сервер критичный, переустановка надёжнее ручной чистки.
Сохранятся ли базы после удаления эмулятора?
Да. Базы и их данные эмулятор не меняет. Перед работами всё равно выгрузите копию в .dt.

Источники

  • Гражданский кодекс РФ, часть четвёртая, ст. 1270, 1301
  • Уголовный кодекс РФ, ст. 146
  • Кодекс РФ об административных правонарушениях, ст. 7.12