Перенос ключа 1С на виртуальную машину пошагово

Как пробросить ключ 1с на виртуальную машину

Содержание статьи

Как пробросить ключ 1с на виртуальную машину

Перенос аппаратного или программного ключа защиты 1С на виртуальную машину (ВМ) требует точного соблюдения последовательности действий. Ошибки на любом этапе могут привести к блокировке лицензии или неработоспособности системы. В этой статье рассмотрены проверенные методы для HASP HL, Guardant и программных ключей 1С, включая особенности работы с гипервизорами VMware ESXi, Hyper-V и VirtualBox.

Для аппаратных ключей критически важно правильно настроить USB-редирект или проброс устройства в ВМ. В случае с HASP HL потребуется установить драйверы Sentinel LDK версии не ниже 7.104 на хостовой и гостевой системах. Для Guardant – убедиться в поддержке режима USB-over-Ethernet, если ключ подключается через сетевой адаптер. Программные ключи требуют переноса файла *.lic или *.v2c с последующей активацией через 1С:Предприятие или утилиту haspdinst.

Перед началом работ создайте резервную копию текущей конфигурации ключа. Для аппаратных устройств используйте утилиты Sentinel Admin Control Center (для HASP) или GrTools (для Guardant). Проверьте совместимость ключа с версией платформы 1С – например, HASP HL Pro не поддерживается в 1С:Предприятие 8.3.24 без обновления прошивки. На виртуальной машине отключите USB-автоподключение в настройках гипервизора, чтобы избежать конфликтов при старте системы.

Если ключ не определяется в ВМ, проверьте логи гипервизора на наличие ошибок USB device passthrough. В VMware ESXi это можно сделать через esxcli hardware usb passthrough list. Для Hyper-V убедитесь, что служба Hyper-V Virtual Machine Management имеет права на доступ к USB-контроллеру. В VirtualBox используйте команду VBoxManage modifyvm «VM_name» —usb on и добавьте фильтр для конкретного устройства по VendorID и ProductID.

Подготовка физического ключа защиты 1С к переносу

Перед переносом USB-ключа HASP или Guardant на виртуальную машину проверьте его текущую привязку. Запустите утилиту *haspdinst.exe* (для HASP) или *grdutil.exe* (для Guardant) с параметром *-info* для получения серийного номера и статуса лицензии. Если ключ привязан к конкретному аппаратному ID (например, MAC-адресу сетевой карты), потребуется перепривязка через личный кабинет вендора или обращение в техподдержку 1С. Для Guardant используйте команду *grdutil -r* для сброса привязки, но учтите, что это возможно только для ключей с неиспользованными лицензиями.

Обновите драйверы ключа до последней версии. Для HASP скачайте *Sentinel LDK Runtime* с сайта Thales, для Guardant – *Guardant Drivers* с официального ресурса. Версии ниже 7.10 для HASP и 6.50 для Guardant могут некорректно работать в виртуальных средах из-за отсутствия поддержки USB-пасcтhrough. Установите драйверы на физической машине, затем перезагрузите её. Проверьте работоспособность ключа через *Управление компьютером → Диспетчер устройств*: в разделе *Контроллеры USB* должен отображаться *Sentinel USB Key* или *Guardant Dongle* без восклицательных знаков.

Создайте резервную копию данных ключа. Для Guardant используйте утилиту *grdbackup.exe* с параметром *-f backup.grd*, для HASP – *haspdinst -backup -f hasp_backup.hlk*. Храните файл резервной копии на отдельном носителе. Если ключ содержит несколько лицензий, уточните в документации возможность их разделения: например, Guardant позволяет выгружать лицензии по одной через *grdutil -e*, а HASP требует перепрограммирования всего ключа.

Настройка виртуальной машины для работы с аппаратным ключом

Перед подключением USB-ключа 1С к виртуальной машине (ВМ) убедитесь, что гипервизор поддерживает проброс USB-устройств. Для VMware Workstation и ESXi требуется версия не ниже 15.5, для Hyper-V – Windows 10/Server 2016 и новее. В VirtualBox используйте расширение Oracle VM VirtualBox Extension Pack, совместимое с текущей версией ПО.

На хостовой системе отключите драйверы, автоматически захватывающие ключ. Для ключей HASP/Sentinel выполните:

  • Удалите стандартные драйверы через Диспетчер устройствУниверсальные последовательные шины.
  • Установите Sentinel Runtime версии 7.10 или выше с официального сайта Thales, выбрав компонент USB Driver.
  • Для ключей Guardant используйте драйвер Guardant Dongle Drivers версии 6.50+.

В настройках ВМ активируйте проброс USB. В VMware:

  1. Откройте VM → Settings → USB Controller.
  2. Выберите USB 3.0 (даже для USB 2.0-ключей – повышает стабильность).
  3. Добавьте устройство через Add → USB Device, указав идентификатор ключа (например, VID_0529&PID_0001 для HASP).

В Hyper-V используйте PowerShell-команду:

Add-VMAssignableDevice -VMName "Имя_ВМ" -LocationPath "PCIROOT(0)#PCI(0102)#USBROOT(0)#USB(1)"

Путь уточните через Get-PnpDevice | Where-Object {$_.FriendlyName -like "*ключ*"}.

Настройте политики безопасности ВМ, чтобы предотвратить отключение ключа. В VMware отключите параметр Automatically connect new USB devices в настройках USB-контроллера. Для Hyper-V создайте правило в Локальная политика безопасностиПолитики ограниченного использования программ, запретив запуск usbccgp.sys и usbstor.sys для всех пользователей, кроме системных.

Проверьте корректность проброса ключа в гостевой ОС. В Windows выполните:

  • devmgmt.msc → убедитесь, что ключ отображается в разделе Устройства безопасности без восклицательных знаков.
  • Запустите haspdinst.exe -info (для HASP) или grdutil.exe -list (для Guardant) – должен вернуться серийный номер ключа.
  • Если ключ не определяется, обновите драйверы вручную через Обновить драйвер → Выполнить поиск на этом компьютере → Указать путь к папке с драйверами.

Для Linux-систем (например, Ubuntu 20.04+) установите пакеты:

sudo apt install libusb-1.0-0 pcscd pcsc-tools

Проверьте доступность ключа командой:

lsusb | grep -i "hasp\|guardant"

При ошибках доступа добавьте правило udev:

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0529", ATTR{idProduct}=="0001", MODE="0666"' | sudo tee /etc/udev/rules.d/99-hasp.rules

Перезагрузите службу udev:

sudo udevadm control --reload-rules && sudo udevadm trigger

Оптимизируйте производительность ВМ при работе с ключом. В VMware отключите USB compatibility в настройках контроллера. Для Hyper-V увеличьте приоритет процесса vmwp.exe через Диспетчер задач → Подробности. В VirtualBox добавьте в конфигурационный файл ВМ строку:

<USBController enabled="true" enabledEhci="true" xhciPresent="false"/>

Исключите ключ из антивирусного сканирования на хосте и в ВМ, добавив папки драйверов в исключения (например, C:\Program Files (x86)\Common Files\Aladdin Shared\HASP).

Установка драйверов защиты 1С на хостовой системе

Установка драйверов защиты 1С на хостовой системе

Перед переносом ключа 1С на виртуальную машину убедитесь, что на хостовой системе установлены актуальные драйверы защиты. Для аппаратных ключей HASP (Sentinel) или Guardant скачайте дистрибутив с официального сайта производителя: Gemalto для HASP или Guardant. Версия драйвера должна соответствовать типу ключа – USB или сетевой. Например, для ключей Guardant Stealth III используйте драйвер версии 6.50 и выше, а для HASP HL – не ниже 7.103. Установите драйверы с правами администратора, отключив временно антивирус, так как некоторые компоненты могут блокироваться.

На хостовой системе отключите автоматическое обновление драйверов через Windows Update, чтобы избежать конфликтов с несовместимыми версиями. Для этого в групповой политике (gpedit.msc) перейдите в раздел Конфигурация компьютера → Административные шаблоны → Система → Установка устройства → Ограничения на установку драйверов и включите параметр «Запретить установку устройств, не описанных другими параметрами политики». Это гарантирует стабильность работы ключа до завершения переноса на виртуальную машину.

Проброс USB-порта с ключом в виртуальную среду

Для проброса USB-ключа 1С (например, HASP или RuToken) в виртуальную машину (ВМ) требуется поддержка технологии USB-passthrough на уровне гипервизора. В VMware ESXi или Hyper-V эта функция активируется через настройки ВМ: в ESXi – через веб-интерфейс (Configure → USB Controller → Add USB Device), в Hyper-V – через PowerShell-команду Add-VMHardDiskDrive -VMName "Имя_ВМ" -ControllerType USB -ControllerNumber 0. Для VirtualBox используйте команду VBoxManage modifyvm "Имя_ВМ" --usb on --usbehci on перед запуском ВМ. Убедитесь, что на хосте установлены драйверы ключа (например, Sentinel LDK для HASP).

После активации USB-passthrough подключите ключ к физическому порту хоста. В ВМ проверьте его обнаружение через диспетчер устройств (Windows) или команду lsusb (Linux). Если ключ не определяется, обновите драйверы в ВМ или перезапустите службу защиты 1С: net stop hasplms & net start hasplms. Для стабильной работы отключите энергосбережение USB-порта на хосте через диспетчер устройств (свойства контроллера → Управление электропитанием → снять галочку «Разрешить отключение»).

Гипервизор Команда/Настройка Проверка работоспособности
VMware ESXi Веб-интерфейс → Add USB Device lsusb (Linux) или диспетчер устройств (Windows)
Hyper-V Add-VMHardDiskDrive -ControllerType USB Get-PnpDevice -Class USB
VirtualBox VBoxManage modifyvm --usb on Меню «Устройства» → USB → [Имя ключа]

Проверка видимости ключа в диспетчере устройств ВМ

Проверка видимости ключа в диспетчере устройств ВМ

После подключения USB-ключа 1С к виртуальной машине (ВМ) откройте Диспетчер устройств через меню Пуск или комбинацией клавиш Win + X. В разделе «Устройства по типу» найдите ветку «Контроллеры USB» или «Устройства HID». Ключ должен отображаться как «USB-ключ защиты», «HASP» или «Sentinel» – зависит от модели (например, Sentinel HL, HASP HL). Если устройство помечено желтым восклицательным знаком, драйверы не установлены или работают некорректно.

Для диагностики проблем с видимостью ключа выполните следующие шаги:

  • Щелкните правой кнопкой мыши по устройству и выберите «Обновить драйвер». Укажите путь к драйверам, предоставленным производителем ключа (например, C:\Program Files\SafeNet\Sentinel\).
  • Проверьте настройки ВМ: в гипервизоре (VMware, VirtualBox, Hyper-V) убедитесь, что USB-контроллер добавлен в конфигурацию и ключ привязан к ВМ. В VMware используйте VM → Removable Devices, в VirtualBox – Устройства → USB.
  • Перезагрузите ВМ после установки драйверов. Если ключ не появился, отключите и повторно подключите его физически или через интерфейс гипервизора.

В случае, когда ключ определяется как «Неизвестное устройство», выполните принудительную установку драйвера через «Диспетчер устройств»«Действие»«Установить старое устройство». Выберите «Установить оборудование, выбранное из списка вручную», затем укажите тип «Устройства безопасности» и выберите драйвер из списка или укажите путь к INF-файлу. Для ключей Sentinel используйте драйверы версии не ниже 7.10, для HASP – 6.60.

Если ключ виден в диспетчере, но 1С его не распознает, проверьте следующие параметры:

  1. Запустите утилиту Sentinel Admin Control Center (для Sentinel) или HASP Monitor (для HASP) – они должны отображать серийный номер ключа. Если утилита не видит ключ, проблема в драйверах или настройках ВМ.
  2. В 1С откройте «Администрирование → Лицензирование → Ключи защиты». Если ключ не отображается, добавьте его вручную через «Добавить ключ», указав путь к библиотеке hasp_windows_x64.dll или sntl_apis.dll.
  3. Убедитесь, что в настройках 1С не включен режим «Эмуляция ключа» – это может блокировать работу физического устройства.

Конфигурирование службы лицензирования 1С на виртуальной машине

Настройте параметры сетевого взаимодействия службы. В файле конфигурации *nethasp.ini* (расположен в каталоге установки 1С, например, *C:\Program Files\1cv8\8.3.x.xxx\bin*) укажите IP-адрес ВМ и порт для обмена данными с клиентами. Пример конфигурации: [NH_SERVER] с параметром NH_IP_ADDRESS=192.168.1.100 и [NH_TCPIP] с NH_PORT=3000. Перезапустите службу после изменений. Если ВМ находится за NAT, убедитесь, что порт проброшен на роутере и не блокируется брандмауэром.

Для распределения лицензий между несколькими ВМ создайте кластер серверов 1С. В консоли администрирования (*rac*) добавьте узел кластера с указанием IP-адреса ВМ и порта службы лицензирования: rac cluster add --cluster=ClusterName --host=192.168.1.100 --port=1541. Проверьте доступность лицензий через команду rac license list – в списке должны отображаться все зарегистрированные ключи. При ошибках подключения проверьте настройки брандмауэра Windows: разрешите входящие соединения на порты *1540-1541* и *3000*.

В случае использования USB-ключа HASP на гипервизоре (например, VMware ESXi) настройте проброс устройства в ВМ через параметры виртуальной машины. В конфигурационном файле ВМ (*.vmx*) добавьте строки: usb.generic.allowHID = "TRUE" и usb.quirks.device0 = "0xXXXX:0xYYYY skip-reset, skip-refresh", где *XXXX:YYYY* – VID и PID ключа (узнаются через *Диспетчер устройств*). После перезагрузки ВМ ключ должен определяться в системе как локальное устройство. Для проверки используйте утилиту *haspdinst.exe* из состава 1С: haspdinst -info.

Тестирование подключения к базе данных после переноса ключа

После переноса аппаратного или программного ключа 1С на виртуальную машину первым шагом проверки станет запуск конфигуратора с параметром -TestConnection. Выполните команду в командной строке: 1cv8.exe CONFIG /S"Сервер\База" /N"Пользователь" /P"Пароль" -TestConnection. Если соединение успешно, в логе появится строка «Соединение с информационной базой установлено». При ошибках проверьте параметры подключения в файле ibases.v8i – часто проблема кроется в неверном имени сервера или порте (по умолчанию 1541 для кластера 1С).

Проверьте доступность базы данных через тонкий клиент. Запустите 1С с параметрами: 1cv8.exe ENTERPRISE /S"Сервер\База" /N"Пользователь" /P"Пароль". Если соединение прерывается с ошибкой «Ошибка аутентификации», сбросьте пароль пользователя через конфигуратор или убедитесь, что учетная запись не заблокирована на уровне SQL-сервера (для MS SQL проверьте таблицу sys.server_principals). Для PostgreSQL выполните запрос: SELECT rolname, rolcanlogin FROM pg_roles; – поле rolcanlogin должно быть true.

В случае медленной работы базы после переноса ключа протестируйте производительность соединения. Запустите встроенный тест 1С: 1cv8.exe CONFIG /S"Сервер\База" /N"Пользователь" /P"Пароль" -TestPerformance. Критические показатели: время выполнения запроса менее 500 мс для простых операций (например, открытие справочника), менее 2 с для сложных отчетов. Если значения выше, оптимизируйте настройки кластера: увеличьте параметр MaxMemorySize в конфигурационном файле сервера (reg_1541.cfg) до 70% от ОЗУ ВМ, но не более 16 ГБ для 32-битных систем.

Резервное копирование настроек ключа и восстановление при сбоях

Перед переносом ключа 1С на виртуальную машину создайте резервную копию его настроек. Для аппаратных ключей HASP (Sentinel) используйте утилиту haspdinst.exe с параметром -save, которая сохраняет конфигурацию в файл hasp_XXXXXXXX.dat, где XXXXXXXX – серийный номер ключа. Для программных лицензий скопируйте папку %ProgramData%\1C\licenses или %APPDATA%\1C\1Cv8 (в зависимости от версии платформы). Храните копии на отдельном носителе, недоступном для виртуальной машины.

При работе с USB-ключами учитывайте особенности виртуализации. В Hyper-V отключите режим Enhanced Session для виртуальной машины, иначе ключ не будет распознан. В VMware добавьте устройство в настройки VM через Removable Devices → Connect. Для VirtualBox используйте команду VBoxManage modifyvm "VM_Name" --usb on --usbehci on и подключите ключ через интерфейс USB 2.0.

  • Создайте снапшот виртуальной машины до установки ключа. Это позволит откатиться к чистому состоянию, если возникнут конфликты драйверов.
  • Для ключей Guardant сохраните файл grdlic.dat из директории C:\Program Files (x86)\Guardant\Drivers.
  • Проверьте версию драйверов ключа на совместимость с гостевой ОС. Например, для Windows Server 2019 требуется драйвер HASP не ниже 7.103.

Восстановление настроек ключа после сбоя начинайте с проверки целостности резервной копии. Для HASP-файлов используйте утилиту haspdinst.exe -r с указанием пути к .dat-файлу. Если ключ не определяется, удалите текущие драйверы через haspdinst.exe -purge и установите их заново. При проблемах с программными лицензиями скопируйте содержимое резервной папки licenses в целевую директорию и перезапустите службу 1C:Enterprise 8.3 Server Agent.

При ошибках активации ключа на виртуальной машине выполните следующие шаги:

  1. Отключите ключ от хоста и подключите напрямую к виртуальной машине.
  2. Запустите cmd от имени администратора и выполните hasp_update -info для проверки статуса.
  3. Если ключ отображается как «неизвестный», обновите его прошивку через hasp_update -firmware.
  4. Перезагрузите виртуальную машину и проверьте работу 1С через конфигуратор.

Для минимизации рисков сбоев настройте автоматическое резервное копирование настроек ключа. В Windows используйте планировщик задач для запуска скрипта PowerShell:

Copy-Item -Path "C:\ProgramData\1C\licenses\*" -Destination "\\backup-server\1C_keys\$(Get-Date -Format 'yyyy-MM-dd')" -Recurse -Force

Для Linux-систем добавьте cron-задачу с командой rsync -avz /opt/1C/v8.3/licenses/ user@backup-server:/backups/1C_keys/. Храните не менее трех последних копий, чтобы иметь возможность отката к предыдущей рабочей конфигурации.

В случае критического сбоя, когда ключ не распознается даже после восстановления настроек, обратитесь в службу поддержки 1С с логами утилиты hasp_diag.exe (для HASP) или grd_diag.exe (для Guardant). Приложите файл %TEMP%\hasp_diag.log и скриншоты ошибок. Если ключ аппаратный, укажите его серийный номер – это ускорит диагностику. Для программных лицензий подготовьте файл *.lic из резервной копии и данные о привязке к оборудованию (MAC-адрес, серийный номер диска).

Вопрос-ответ:

Ссылка на основную публикацию