Вопрос или проблема
У меня есть приложение, которое я запускаю на сервере RDS (Win Server 2022), и оно не может работать более чем в одной сессии удаленного рабочего стола. Второй человек, который пытается его запустить, получает ошибку “другая копия запущена на этом компьютере”.
Я думал, что процессы приложения работают полностью отдельно в каждой пользовательской сессии? Почему-то эта программа знает, что она запущена где-то еще, и не может иметь отдельные экземпляры, работающие для разных пользовательских сессий. В документации к программному обеспечению это конкретно не запрещено, они просто говорят, что это не поддерживается.
Может ли кто-то предложить способ обойти это, не создавая виртуальные машины для полностью отдельных экземпляров Windows?
Спасибо.
Ответ или решение
Изоляция приложения на сервере RDS (РДС)
Проблема, с которой вы столкнулись, касается работы приложения, которое не допускает запуск нескольких экземпляров в различных сеансах удалённого рабочего стола на сервере под управлением Windows Server 2022. Давайте подробно рассмотрим возможные подходы к решению данной ситуации.
Понимание проблемы
Согласно вашему описанию, приложение воспринимает множество сеансов как «дублирующие» упоминания одной и той же инстанции. Это часто связано с механизмами, используемыми приложением для отслеживания своей активности на уровне системы. Хотя вы правы, что процессы в разных сеансах должны быть изолированными, некоторые приложения могут хранить файлы блокировок или использовать другие методы для проверки, запущены ли они в системе.
Подходы к решению
Вот несколько способов обхода данной проблемы:
-
Использование сессий с программным обеспечением для виртуализации:
- Вместо создания полных виртуальных машин, вы можете рассмотреть использование программ, таких как App-V (Application Virtualization) или MSI / EXE в качестве сессии. Эти решения могут позволить запустить приложение в изолированной среде, что предотвратит его взаимодействие с другими сессиями.
-
Конфигурация через Group Policy:
- Проверьте, не установлены ли какие-либо политики групповой безопасности, ограничивающие одновременный доступ к программе. Это может быть касаться лицензирования или настроек, определяющих, как приложение взаимодействует с удаленным доступом.
-
Обходные пути через конфигурацию приложения:
- Изучите документацию к вашему приложению на предмет дополнительных флагов или параметров командной строки, которые можно использовать для создания «изолированных» запусков приложения.
-
Использование контейнеризации:
- Хотя это может показаться немного сложным, рассмотрите возможность использования Windows контейнеров для развертывания изолированного экземпляра приложения, где каждый контейнер будет представлять собой полностью независимую среду.
-
Использование альтернативных протоколов подключения:
- Во избежание ошибок связанения попробуйте применять альтернативные методы подключения, такие как RemoteApp или зеркало рабочих столов, что может улучшить изоляцию приложения в разных сессиях.
Заключение
Изоляция приложения на сервере RDS может быть сложной задачей из-за особенностей его архитектуры и ограничения по одновременному запуску. Однако внедрение вышеперечисленных методов может помочь создать рабочую среду, которая соответствует вашим требованиям без необходимости создания отдельных виртуальных машин. Рекомендуется провести тестирование выбранного метода в тестовом окружении перед применением его в рабочей среде для минимизации риска.
Если возникнут дополнительные вопросы или потребуются более детальные разъяснения по каждому из предложенных решений, пожалуйста, дайте знать.