Перевести страницу

Статьи

Terminal Services RemoteApp (удаленные приложения)


     В операционных системах семейства Windows (не домашней), можно включать режим удаленного рабочего стола. Это бывает очень удобно, по причине того, что работая на удаленной машине мы получаем картинку а не перекидываемся громоздкими файлами по сети или даже через интернет, что в разы увеличивает скорость работы. Другое дело что политика разработчиков ОС ограничила эту возможность только 1  рабочим пользователям. Если нам к примеру всетаки надо подключиться скажем через планшет и поработать на компьютере - почему же и нет!

Но если нам нужно запускать только одну определенную программу бывает не очень удобно ждать пока загрузится у нас удаленный рабочий стол потом загружать программу, а если мы даем доступ другу к компьютеру нам нет желания давать ему возможности бороздить у нас на нашей технике и читать конфидициалку.

В новых серверных версиях начиная с Windows Server 2008 появился интересное дополнение - функция Terminal Services RemoteApp (удаленные приложения). Вот ее мы сейчас и попробуем включить у себя. На примере открытия блокнота.


Распишем все по этапам.


1. Правим реестр. regedit.exe. И идем по ветке:

HKLM\Software\Microsoft\WindowsNT\CurrentVersion\TerminalServer\TSAppAllowList

В разделе TSAppAllowList создаем новый подраздел Applications. Далее создаем подразделы для программ, которые должны будут запускаться в качестве RemoteApp. Для каждой программы свой подраздел. Для проверки создадим подраздел с названием Notepad (тут для примера название роли не играет пока он используется для нас и в дальнейшем мы его пропишем в файлике - Remoute RDP). Переходим в него и создаем два строковых параметра Name и Path.

Для параметра Name задаем значение notepad.exe, или другую программу (хоть КонтрСтрайк)

а для Path – путь к папке где лежит приложение, в нашем случае – C:\Windows. (Путь должен быть к папке на компьютере, который будет выступать в роли терминального сервера с Windows 7). Только путь до запускаемго файла, а не сам путь с самим файлом.


regedit remoteapp thumb Настройка TS RemoteApp в Windows 7

Добавляем приложения следующим образов. В разделе Applications создаем дополнительные разделы для каждой программы. И в этих разделах создаем два строковых параметра Name и Path.


regedit reoteapp2 thumb Настройка TS RemoteApp в Windows 7

Изменим еще один параметр.

Переходим в раздел TSAppAllowList. И выставим значение 1 для параметра fDisableAllowList.


fDisableAllowList thumb Настройка TS RemoteApp в Windows 7

С реестром  мы закончили.

2. Создадим файл для подключения к удаленному рабочему столу.

Запускаем утилиту Подключение к удаленному рабочему столу через меню Пуск –> Стандартные, либо Win+R, вводим mstsc, Enter.

mstsc thumb Настройка TS RemoteApp в Windows 7

В открывшемся окне вводим имя ПК, либо IP адрес компьютера с Windows 7 TS RemoteApp. Жмем Сохранить как… И сохраняем в любом месте.

Откроем полученный файл в Notepad++

edit rdp thumb Настройка TS RemoteApp в Windows 7

В файле меняем значение параметра remoteapplicationmode:i:0 на remoteapplicationmode:i:1. После добавим 3 строчки:

remoteapplicationmode:i:1

remoteapplicationprogram:s:notepad

disableremoteappcapscheck:i:1

alternate shell:s:rdpinit.exe


edit rdp2 thumb Настройка TS RemoteApp в Windows 7


Сохраняем файл RemoteApp.rdp и запускаем.


remoteapp connect thumb Настройка TS RemoteApp в Windows 7

При подключении спросит логин и пароль. Нужно чтобы учетная запись входила в группу Пользователи удаленного рабочего стола. Либо надо быть локальным админом, либо доменным. Если все условия соблюдены, то через пару секунд откроется Notepad.

remoteapp notepad thumb Настройка TS RemoteApp в Windows 7


Если при подключении выскакивает сообщение: “Следующее удаленное приложение RemoteApp отсутствует в списке разрешенных программ”, то нужно проверить параметр реестра fDisableAllowList, что у него значение 1.

remoteapp error thumb Настройка TS RemoteApp в Windows 7


Дополнение по просьбе пользователя "Злой юзер"

В *.rdp файле можно заполнить, как пример,  следующим содержимым:

full address:s:ip_     ip удаленного компьютера или виртуальной машины

address remoteapplicationmode:i:1

disableremoteappcapscheck:i:1

alternate shell:s:rdpinit.exe

prompt for credentials on client:i:1

remoteapplicationname:s:program_name   - Название программы .exe.bat и пр.

remoteapplicationprogram:s - Полный путь к exe файлу программы

path redirectclipboard:i:1

redirectposdevices:i:0

redirectprinters:i:1

redirectcomports:i:1

redirectsmartcards:i:1

devicestoredirect:s:*

drivestoredirect:s:*

redirectdrives:i:1

session bpp:i:32

span monitors:i:1

use multimon:i:1

allow font smoothing:i:1

username:s:username


А так же, для продвинутых пользователей  Terminal remoteapp таблица значений.xls




Эдуард

А что делать, если rdpinit (rdpshell etc.) нет? (win 7 pro 32 bit) и соответственно ничего не запускается

Комментировать
Администратор

Ну для начала делать утром на сежую голову. Скиньте что у вас получается глянем.

Злой юзер

Что мне делать, если у меня есть две папки с программой?
два нотепада из разных папок как запустить?
Где прописывается ИМЯ исполняемого файла?
Очень тупая копипаста из интернета. двойка.

Комментировать
Злой юзер

Админу на заметку, поясняю:
1. Параметр Name задаем какой хотим, это УНИКАЛЬНОЕ ИМЯ ВЫЗЫВАЕМОЙ ПРОГРАММЫ
2. Параметр Path задаем с ПОЛНЫМ путем, включая ИМЯ и РАСШИРЕНИЕ исполняемого файла.
3. Сделали? погнали в файл RDP
4. Значение remoteapplicationprogram это УНИКАЛЬНОЕ ИМЯ ВЫЗЫВАЕМОЙ ПРОГРАММЫ
И так как в винде тянутся хвосты для совместимости, что бы гарантированно работало нужно писать так:
remoteapplicationprogram:s:||УНИКАЛЬНОЕИМЯВЫЗЫВАЕМОЙПРОГРАММЫ
5. Добавляем ЕЩЕ одно значение remoteapplicationname:s:ИМЯ.РАСШИРЕНИЕ того исполняемого файла который прописали в Path

Конечно по настройке, что описано, будет тоже работать, но только для нотепада,
Мной указанные исправления будут работать на любой венде от ХР до Сервер 2019.

Задание для админа: обнови статью и расскажи дополнительно, на что влияет выбор имени разделов в HKLM\Software\Microsoft\WindowsNT\CurrentVersion\TerminalServer\TSAppAllowList\Applications
(подсказку можно найти на cертификации Windows Administrator)

Исправлено Администратором (Причина Мат)

Администратор

НУ писалось из личных настроек, и естественно все вопросы тут не рассматриваются. А по существу, если надо запускать две разные программы на сервере. надо создать два разных подключения (два файлика RDP), и прописать програму для запуска нужно в блокноте (есть тут на фото), выделенный фрагмент в 34 строчке (remoteapplicationprogram:s:С:\\Путь к программе\фаш файл.exe)указываешь полный путь с программой для запуска.
"Злой Юзер" Пойми, что, если все варианты рассматривать то получится том "войны и мира", тут показывается пример с некоторыми приёмами.

Злой юзер

НУ писалось из личных настроек, и естественно все вопросы тут не рассматриваются...

Это единственно правильное решение, описанное мной, ваш пример исключительно для нотепада, программа в другой папке, не windows, работать не будет.

выделенный фрагмент в 34 строчке (remoteapplicationprogram:s:С:\\Путь

Ещё раз обращаю внимание на правильную запись этого параметра:
remoteapplicationprogram:s:||УНИКАЛЬНОЕИМЯВЫЗЫВАЕМОЙПРОГРАММЫ
, где УНИКАЛЬНОЕИМЯВЫЗЫВАЕМОЙПРОГРАММЫ это название подраздела в разделе HKLM\Software\Microsoft\WindowsNT\CurrentVersion\TerminalServer\TSAppAllowList\Applications
Оно может быть ЛЮБЫМ. Путь же к программе указывается в параметре Path. а в *.RDP соответствующее значение
remoteapplicationname:s:ИМЯ.РАСШИРЕНИЕ без пути, но в Path путь прописывать вместе с ИМЯ.РАСШИРЕНИЕ.

"Злой Юзер" Пойми, что, если все варианты рассматривать то получится том "войны и мира"

Администратор, пойми, что в Редмонде сидят далеко не идиоты, и твоя инструкция написана ими, что б такие как ты плакали, кололись но продолжали жрать кактус.
Если есть желание, изучи, как построен сервис remoteapp в серверных ОС и все вопросы сразу отпадут, так как он устроен именно так, как я написал, для любого количества и качества приложений.

Администратор

Ладно, не буду спорить, отчасти вы правы, рассказали то же но другими словами. В тексте это было расшифровано в картинке, но у вас пожалуй расписано хорошо.

Алексей

Скажите, а если когда запускаю rdp файл, вместо программы открывается папка с программой на сервере. И приходится вручную из папки запускать программу. ?

Комментировать
Администратор

Неправильный или неполный путь к программе, поэкспериментируйте с блокнотом

Игорь

ДД, статья полезная, но Вы забыли указать, что необходимо прописать адрес машины или имя. full address:s: (имя ПК в сети или ip адрес)

Комментировать
Администратор

Игорь, ну мы старались описать ту часть, которая мало описана в просторах интернета. И если сперва настроить обычное подключение, дале его через блокнот дописать эти действия уже не требуются действия (имя ПК в сети или ip адрес, т.к. они уже будут прописаны).