Как изолировать процессы пользователей друг от друга при RDP в Win 10?
Доброго времени суток
Создаю несколько соединений по RDP с разными пользователями (Win 10, пользователи разумеется на одном компьютере)
Но если вызвать какую-нибудь программу, которая не терпит повторного запуска (старый Скайп например), то у пользователя (у которого программа уже запущена) программа завершается и заново запускается, но уже у пользователя у которого был вызов программы
Я полагаю, чтобы запустить например тот же Скайп сразу у двух пользователей, я должен как-то изолировать процессы пользователей друг от друга
Вопрос в том как это сделать?
Нужна именно виртуализация приложений (НЕ ПРОЦЕССОВ!), т.к. каждая программа по-своему анализирует своё состояние в запущенной среде.
Поэтому, нужно пробовать различные подходы. Самый "прямой" вариант:TS RemoteApp
"Кривые" варианты:
1. Попробовать добавить настройку в .rdp файл: disableconnectionsharing:i:1 описание параметров
2. Live OS и загрузкой по сети: Здесь
3. Portables Apps и разделённые папки с данными для разных пользователей у каждого приложения.
Если вам нужен конкретно скайп, то у него есть параметр Skype.exe /secondary
А вообще программы могут проверять либо какие-то семафоры, либо даже просто смотрят список процессов.
Виртуализация, или что-то вроде sandboxie не пойдет?
Нет, речь идет не о Скайпе, а о программах, которые не допускают повторного запуска себя
Скайп был взят чисто для примера
Цель - полноценная работа двух пользователей на одной машине (скайп, браузер, игры и т.д.)
Я пытаюсь найти полноценное решение
А как вы понимаете заглядывать в каждую программу проверяю как она узнает что не одна в системе - это костыли
Если начинает использоваться какая-то новая программа, также не любящая двойного открытия, то придется править костыль под нее
Это очень не удобно
sandboxie не удобно, да и не получится - некоторые программы категорически против запускаться в такой среде, распознают :)
Под виртуализацией имеете ввиду программы типа Virtualbox, VMware, Hyper-V?
Если да, то я столкнулся с проблемой запуска игр. Жалуются на отсутствие DX11 (поддержка DX11 только у Hyper-V, но какая-то кривая). Так что тоже не вариант
Или я не правильно понял что вы предлагаете сделать под словом "виртуализация"?
lightalex, Универсальное решение вашей задачи - это виртуализация, то самое, что вы перечислили и еще пачка других вариантов. Да есть ограничения, но это всегда бывает, чем-то приходится расплачиваться за дополнительные плюшки.
В RDP с играми то же все далеко не кучеряво. Собственно эти инструменты разрабатывались вовсе не для игр. Хотя RDP со временем подтягивается.
Еще одно универсальное решение - не пользоваться программами, имеющими ограничения, которые вас не устраивают.
res2001, а что с играми по RDP не так? Временной лаг? Если да, то это вообще меня не волнует
Вопрос не в качестве использования, а именно в удобстве
Чтобы приложения у одного пользователя не вылетали, когда другой решает ими воспользоваться
Это гораздо критичнее, чем временные лаги
Я не совсем понял с виртуализацией
Насколько я понимаю, это виртуальные машины запускаемые в рамках основной ОС, правильно?
Просто я пытался решить задачу с помощью Virtualbox, VMware, Hyper-V, но как я уже писал выше, наткнулся на проблемы с поддержкой DX11
А чем меня RDP привлек, так это тем что RDP позволяет запустить параллельно несколько пользователей на основной ОС
И нет никакой возни с поддержкой ПО
+ по ресурсам намного экономичнее получается чем с виртуальными машинами
Поэтому я решил попытаться изолировать активных пользователей системы друг от друга
Мне кажется что это должно довольно легко решаться и ограничено политикой, а не архитектурой
lightalex, есть некоторая разница между тем, что вам кажется, тем что вы представляете и т.п. и тем, что есть на самом деле.
Проброс видеокарты в виртуалку - отдельный танец, упирающийся в железо и в драйвера. Если коротко - далеко не в любую виртуальную машину и не любую видеокарту можно пробросить. В целом, обсуждение получается довольно бессмысленное, т.к. конкретику вы не приводите, а на абстрактном уровне все упирается в какое-то "кажется".
lightalex, Многие приложения не возможно запустить 2 раза в рамках одной ОС из-за архитектуры этих приложений (например они создают какой-либо именованный глобальный ресурс (файл, pipe, сокет, shared memory, ...) и второй экземпляр приложения уже не может этот ресурс создать).
Да вы правы: RDP менее требователен к ресурсам, чем виртуализация.
И вы не правы в том, что
это должно довольно легко решаться
Некоторые вопросы легко не решаются без разработчиков приложения, но даже если разработчики доступны для контакта они не всегда захотят удовлетворять ваши хотелки за бесплатно.
В вашей конкретной ситуации нужно рассматривать каждое приложение отдельно (ищите замену приложения, ищите причину такого поведения, есть ли варианты обхода, доступны ли разработчики, можно с ними пообщаться на предмет решения проблемы), по скайпу вам уже подсказали решение. Универсальные решения вашего вопроса я описал в предыдущем посте. Примите это и выберите наиболее удовлетворяющий вас вариант.
Я бы на вашем месте оставался на RDP а вопросы с проблемными приложениями разруливал по отдельности. Я думаю, что таких приложений не так что бы много.
res2001, lightalex, стоит добавить, что такие приложения, где подобные конфликты получились "случайно", обычно не запускаются с ошибкой типа "копия приложения уже запущена". А если предыдущий экземпляр вылетает - это скорее всего специально.