В операционных системах семейства 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). Только путь до запускаемго файла, а не сам путь с самим файлом.
Добавляем приложения следующим образов. В разделе Applications создаем дополнительные разделы для каждой программы. И в этих разделах создаем два строковых параметра Name и Path.
Изменим еще один параметр.
Переходим в раздел TSAppAllowList. И выставим значение 1 для параметра fDisableAllowList.
С реестром мы закончили.
2. Создадим файл для подключения к удаленному рабочему столу.
Запускаем утилиту Подключение к удаленному рабочему столу через меню Пуск –> Стандартные, либо Win+R, вводим mstsc, Enter.
В открывшемся окне вводим имя ПК, либо IP адрес компьютера с Windows 7 TS RemoteApp. Жмем Сохранить как… И сохраняем в любом месте.
Откроем полученный файл в Notepad++
В файле меняем значение параметра remoteapplicationmode:i:0 на remoteapplicationmode:i:1. После добавим 3 строчки:
remoteapplicationmode:i:1
remoteapplicationprogram:s:notepad
disableremoteappcapscheck:i:1
alternate shell:s:rdpinit.exe
Сохраняем файл RemoteApp.rdp и запускаем.
При подключении спросит логин и пароль. Нужно чтобы учетная запись входила в группу Пользователи удаленного рабочего стола. Либо надо быть локальным админом, либо доменным. Если все условия соблюдены, то через пару секунд откроется Notepad.
Если при подключении выскакивает сообщение: “Следующее удаленное приложение RemoteApp отсутствует в списке разрешенных программ”, то нужно проверить параметр реестра fDisableAllowList, что у него значение 1.
Дополнение по просьбе пользователя "Злой юзер"
В *.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 адрес, т.к. они уже будут прописаны).