Многие пользователи и системные администраторы сталкиваются с ситуацией, когда при подключении к компьютеру по протоколу удаленного рабочего стола (RDP) программа 1С перестает видеть локально установленный USB-ключ защиты. В диспетчере устройств ключ может отображаться корректно, однако 1С при запуске выдает ошибку отсутствия лицензии. Давайте разберемся, почему это происходит и какие существуют пути решения данной проблемы.
Важно понимать, что аппаратные ключи защиты (USB-ключи HASP или Guardant) имеют архитектурные ограничения. Локальные (однопользовательские) ключи разработаны для работы только в рамках консольной сессии — то есть при непосредственном физическом доступе к компьютеру, к которому подключен ключ.
При использовании RDP операционная система Windows создает изолированную сессию пользователя. Механизм защиты, используемый в 1С, на уровне драйверов проверяет наличие физического ключа именно в текущем сеансе. Поскольку RDP-сессия является удаленной, драйвер ключа не «пробрасывается» автоматически в эту сессию, что делает ключ невидимым для 1С, несмотря на то, что физически он по-прежнему подключен к USB-порту сервера.
Самым эффективным и современным способом решения проблемы является отказ от использования аппаратных ключей в пользу программных лицензий. Программная лицензия привязывается к параметрам «железа» компьютера (процессору, материнской плате, сетевым картам) или сервера. Такая лицензия лишена недостатков физических носителей: она не подвержена износу, её невозможно физически повредить, и она корректно работает в любых сеансах, включая терминальные.
Если специфика работы требует использования аппаратной защиты, рекомендуется заменить локальный ключ на сетевой (многопользовательский). Сетевой ключ устанавливается на один из компьютеров в локальной сети (или специальный USB-сервер) и раздает лицензии клиентам по сети. При таком подходе 1С при запуске обращается к менеджеру лицензий по сети, поэтому сессия (локальная или RDP) не имеет значения — лицензия будет успешно получена.
В некоторых случаях можно попытаться подключиться к серверу именно как к консоли. Это позволит «обмануть» систему, заставив её считать, что вы работаете за физическим монитором. Для этого при вызове клиента удаленного рабочего стола используйте ключ /admin:
Выполните команду в строке «Выполнить» (Win+R):
mstsc /v:имя_сервера /admin
Важное примечание: Данный метод работает не всегда. В современных серверных операционных системах или при определенных настройках групповых политик удаленное подключение к консоли может быть ограничено или заблокировано в целях безопасности. Кроме того, при подключении к консоли текущий локальный пользователь будет принудительно отключен.
Если протокол RDP создает слишком много ограничений, рассмотрите использование систем удаленного управления, которые работают по принципу захвата изображения (трансляции консольного сеанса). К таким программам относятся:
UltraVNCRadminAnyDeskTeamViewerПоскольку эти инструменты не создают отдельную терминальную сессию, а подключаются к уже существующей сессии физического пользователя, ключ защиты будет восприниматься программой 1С как локальный, и проблема с авторизацией будет решена.
Существуют специализированные программные и аппаратные решения USB over IP. Они позволяют «пробросить» физический USB-порт с одного компьютера на другой через локальную сеть. Операционная система сервера в этом случае будет «думать», что ключ вставлен непосредственно в её собственный USB-разъем. Это профессиональный способ обхода ограничений RDP, который обеспечивает стабильную работу в терминальных средах.
Подводя итог, можно сказать, что ситуация с невидимостью ключа — это не ошибка 1С, а особенность работы протокола безопасности Windows. Мы рекомендуем по возможности переходить на программные лицензии — это самый простой и надежный способ избежать подобных проблем в будущем.