Спрашивается, какого черта я запостил эту тему именно тут, в разделе о Linux... Но это легко объяснить.
Думаю, мало кому понадобится такое костыльное решение для работы с RemoteApp, но для запуска "того, что не стартонуло в wine" должно вполне хватить.
Итак, немного лирики... Серверные ОС: Windows Server 2008 и 2008 R2 позволяют предоставлять помимо обычных терминальных сессий еще и приложения сквозь бесшовный терминал (TS RemoteApp), логично предположить, что аналогичный функционал явно присутствует в Windows 7. Приложение в терминале - вещь еще более интересная, чем удалённый рабочий стол. Пользователь не видит удалённый рабочий стол, кнопки "Пуск" и т.д., зачем тратить на это дополнительный трафик? Не нужно ограничивать пользователя и урезать ему права - настраивать множественные групповые политики. Пользователю необходимо только приложение - пусть оно откроется как обычное (как при запуске с его компьютера) и покажет только окно самой программы.
В целом, необходимо сделать из Windows 7 терминальный сервер удалённых приложений (Terminal Server RemoteApp) для доступа из-под Linux.
Имеем:
1. VMWare 9 (но подойдёт и VirtualBOX).
2. Windows 7 Максимальная - установлена под VMWare 9 (должна подойти и хоум премиум, но тут нужно проверять).
3. Хостовая машина под управлением Kubuntu 12.04.2 LTS (сойдёт любая GNU/Linux-система).
Запускаем...
Вначале подготовим сервер. Процесс установки системы на виртуальный хост расписывать не вижу смысла, так как если Вы дочитали пост до этого предложения Вы "в теме" и размусоливать не стоит... Если же Вы просто любознательный читатель, то гугл Вам в помощь или обращайтесь ко мне в личку.
Так, считаем, что винда на виртуалке установлена, базовая настройка произведена, пинги проходят как от хоста до виртуалки, так и от виртуалки до хоста, иными словами - сеть функционирует...
Из "коробки" Windows 7 не умеет и не знает о RemoteApp (разработчик отшиб эту часть мозга блондинкоподобной ОС), поэтому надо пропатчить винду и будет счастье. Я написал на скорую руку небольшую программу, она прочистит мозги форточкам, но ряд ограничений, свойственных "не серверным ОС", всё же останется: ограничение числа сессий, невозможность одновременной работы более одного пользователя через RemoteApp, отсутствие Terminal Services Easy Print... Это именно об этих костылях я и говорил в начале поста...
Качаем активатор
отсюда, там три кнопки - не потеряетесь, жмите "Активировать RemoteApp", закройте прогу, перезагрузите виртуальный хост.
Теперь нам нужно добавить глобальную переменную для запускаемого приложения на стороне Windows 7. Идём в "свойства системы", далее вкладка "дополнительно", жмём кнопку "переменные среды". Открылось новое окно, обращаем внимание на секцию "Системные переменные", жмём кнопку "Создать...". Открылось ещё одно окно, вводим имя новой глобальной переменной (calca) и путь до запускаемого приложения (C:\Windows\System32\calc.exe - путь до приложения "калькулятор" ОС Windows 7).
VMWare можно закрыть (я имею ввиду запустить в фоновом режиме, чтобы глаза не мозолил и не жрал лишние ресурсы).
Всё, настройка сервера закончена.
Приступим к настройке клиента - Kubuntu 12.04.2 LTS.
Устанавливаем xfreerdp (RDP-клиент под Linux):
Код:
|
sudo apt-get install freerdp-x11 libfreerdp1 libfreerdp-plugins-standard |
Далее в удобном месте создаём shell-файл с правом на запуск со следующим содержимым:
Код:
|
xfreerdp -u 'USER' -p 'PASSWORD' --plugin cliprdr --plugin rdpdr --app --plugin rail.so --data "%calca%" -- 192.168.0.10 |
Где
USER - имя пользователя Windows 7,
PASSWORD - его пароль,
%calca% - та самая глобальная переменная,
192.168.0.10 - адрес виртуального хоста...
Если всё было сделано верно увидим следующее:
Всё готово, можно "прозрачно" запускать виндовые приложения, если через VMWare расшарить доступ к локальному диску (или необходимой для работы папке), то жить станет ещё веселей!