Как запустить rdp приложение
В последнее время очень много клиентов хотят использовать DIRECTUM через терминальные сервера. В этом блоге я расскажу про новую технологию Microsoft, которая называется RemoteApp.
RemoteApp - это технология, которая позволяет представлять приложения, доступ к которым может быть получен удаленно через Службы удаленных рабочих столов, как если бы они были запущены на локальном компьютере пользователя. Другими словами, пользователь просто запускает ярлык на рабочем столе, а приложение запускается на терминальном сервере.
Этапы установки и настройки удаленных приложений
- настройка хост-сервера сеансов удаленных рабочих столов для размещения удаленных приложений RemoteApp ;
- добавление программ в список удаленных приложений RemoteApp ;
- создание RDP-файла и Создание пакета установщика Windows .
Настройка хост-сервера сеансов удаленных рабочих столов для размещения удаленных приложений RemoteApp
Существуют предварительные требования к установке, которые необходимо выполнить перед настройкой Удаленные приложения RemoteApp для использования. В следующих разделах рассматривается настройка сервера для работы с Удаленные приложения RemoteApp.
- установка службы роли хост-сервера сеансов удаленных рабочих столов;
- установка программ;
- проверка параметров удаленного подключения.
Установка службы роли хост-сервера сеансов удаленных рабочих столов
Диспетчер удаленных приложений RemoteApp устанавливается в составе службы роли Узел сеансов удаленных рабочих столов.
В этом разделе описывается порядок установки службы роли Узел сеансов удаленных рабочих столов.
Примечание: После установки службы роли Узел сеансов удаленных рабочих столов необходимо перезагрузить компьютер.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов.
Рекомендации по оборудованию сервера:
- процессор: Quad 3.00 GHz;
- память: 1000 Мб для windows + 350 Мб для каждого сеанса;
Установка службы роли хост-сервера сеансов удаленных рабочих столов
- На компьютере, на котором требуется установить службу роли Узел сеансов удаленных рабочих столов, откройте средство Диспетчер серверов. Чтобы открыть компонент "Управление сервером", нажмите Пуск, Администрирование, а затем Управление сервером.
2. В группе Сводка по ролям выберите Добавить роли.
3. На странице Прежде чем, приступить к работе мастера добавления ролей нажмите кнопку Далее .
4.На странице Выбор ролей сервера установите флажок Службы удаленных рабочих столов и нажмите кнопку Далее.
5. На странице Службы удаленных рабочих столов нажмите кнопку Далее .
6. На странице Выбор служб ролей установите флажок Узел сеансов удаленных рабочих столов, флажок лицензирование удаленных рабочих столов, флажок Веб-доступ к удаленным рабочим столам и нажмите кнопку Далее .
7. На странице Удаление и повторная установка приложений для определения совместимости нажмите кнопку Далее .
8. На странице Укажите метод подлинности для узла сеансов удаленных рабочих столов, выберите Не требовать проверку подлинности на уровне сети, нажмите на кнопку Далее .
9. На странице Укажите режим лицензирования, выберите нужный режим, рекомендуется режим «На пользователя», и нажмите кнопку Далее .
10. На странице Выберите группы пользователей, которым разрешен доступ к этому хост-серверу сеансов удаленных рабочих столов добавьте пользователей или группы, которые требуется добавить в группу «Пользователи удаленного рабочего стола», и нажмите кнопку Далее .,
11. На странице Настройка взаимодействия с пользователем выберите требуемый пользовательский интерфейс и нажмите кнопку Далее .
12. На странице Настроить область обнаружения для лицензирования удаленных рабочих столов, нажмите на кнопку Далее .
13. На странице Веб- сервер (IIS ) нажмите на кнопку Далее.
14. На странице Выбор служб ролей нажмите на кнопку Далее .
15. На странице Подтвердите выбранные элементы убедитесь, что служба роли Узел сеансов удаленных рабочих столов выбрана для установки, и нажмите кнопку Установить .
16. На странице Ход выполнения установки будет отображаться ход выполнения установки.
18. После перезапуска сервера и входа в компьютер с использованием той же учетной записи пользователя установка завершится. При появлении страницы Результаты установки убедитесь, что установка сервера Узел сеансов удаленных рабочих столов выполнена
Установка программ
Приложения следует устанавливать на удаленный сервер после установки службы роли Узел сеансов удаленных рабочих столов. Приложения на сервер Узел сеансов удаленных рабочих столов устанавливаются так же, как и на локальный рабочий стол. Тем не менее следует убедиться, что приложения устанавливаются для всех пользователей, а все необходимые компоненты приложений устанавливаются локально на сервер Узел сеансов удаленных рабочих столов.
В нашем случае, мы будем устанавливать систему DIRECTUM и Microsoft Office.
Проверка параметров удаленного подключения
По умолчанию удаленные подключения включены сразу после установки службы роли Узел сеансов удаленных рабочих столов. Чтобы добавить пользователей и группы, которым требуется подключение к серверу Узел сеансов удаленных рабочих столов, и проверить или изменить параметры удаленного подключения, можно использовать следующую процедуру.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов.
Чтобы проверить параметры удаленного подключения:
- На сервере Узел сеансов удаленных рабочих столов запустите средство «Система». Чтобы запустить инструмент "Система", нажмите кнопку Пуск, выберите пункт Выполнить, введите control system, а затем нажмите кнопку ОК .
- В группе Задачи выберите Параметры удаленного рабочего стола.
- В диалоговом окне Свойства системы на вкладке Удаленный выберите один из следующих вариантов, в зависимости от среды.
3.1. Разрешать подключения от компьютеров с любой версией удаленного рабочего стола (менее безопасно)
3.2. Разрешать подключения только от компьютеров с удаленным рабочим столом с сетевой проверкой подлинности (безопасность выше)
3.3. Для получения дополнительных сведений о двух параметрах на вкладке Удаленный щелкните ссылку Помогите мне выбрать.
4. Чтобы добавить пользователей и группы, которые необходимо подключить к серверу Узел сеансов удаленных рабочих столов с помощью удаленного рабочего стола, выберите пункт Выбрать пользователей, а затем нажмите кнопку Добавить. Добавляемые пользователи и группы добавляются в группу «Пользователи удаленного рабочего стола».
Добавление программ в список удаленных приложений RemoteApp
Чтобы сделать программу доступной для пользователей удаленно через Диспетчер удаленных приложений RemoteApp, необходимо добавить ее в список Приложения RemoteApp.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов.
Чтобы добавить программу в список удаленных приложений RemoteApp :
- Откройте диспетчер удаленных приложений RemoteApp на сервере узла сеансов удаленных рабочих столов. Для этого нажмите кнопку Пуск, откройте меню Администрирование, затем выберите пункты Службы удаленных рабочих столов и Диспетчер удаленных приложений RemoteApp.
2. В области Действия щелкните Добавить удаленные приложения RemoteApp .
3. На странице Мастер удаленных приложений (RemoteApp ) нажмите кнопку Далее.
4. На странице Выберите программы для добавления в список удаленных приложений RemoteAppустановите флажки рядом с теми программами, которые следует добавить в список Удаленные приложения RemoteApp. Можно выбрать несколько программ, в нашей ситуации выбираем DIRECTUM и Microsoft Office Application (Excel и Word). Нажмите на кнопку Далее.
5. На странице Мастер удаленных приложений RemoteApp нажмите на кнопку Готов.
Создание RDP-файла и Создание пакета установщика Windows
Создание RPD файла
С помощью мастера RemoteApp можно создать файл протокола удаленного рабочего стола (RDP-файл) из любого приложения в списке Удаленные приложения RemoteApp.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов, который требуется настроить.
Чтобы создать RDP-файл:
- Откройте диспетчер удаленных приложений RemoteApp на сервере узла сеансов удаленных рабочих столов. Для этого нажмите кнопку Пуск, откройте меню Администрирование, затем выберите пункты Службы удаленных рабочих столов и Диспетчер удаленных приложений RemoteApp.
- В списке Приложения RemoteApp выберите программу, для которой необходимо создать RDP-файл. Чтобы выбрать несколько программ, нажмите и удерживайте нажатой клавишу CTRL при выборе программ. В нашей ситуации выберите «Проводник системы DIRECTUM».
3. В области Действия для программы или выбранных программ щелкните Создание RDP-файла.
4. На странице Мастер удаленных приложений нажмите кнопку Далее.
5. На странице Задание параметров пакета выполните следующие действия:
5.1.В поле Введите расположение для сохранения пакетов примите расположение по умолчанию или нажмите кнопку Обзор, чтобы указать новое расположение для сохранения RDP-файла.
5.2. В разделе Параметры хост-сервера сеансов удаленных рабочих столов нажмите кнопку Изменить, чтобы изменить имя сервера или номер порта протокола удаленного рабочего стола (RDP). По завершении нажмите кнопку ОК .
5.3. Для того, чтобы подписать RDP-файл цифровой подписью, в области Параметры сертификата нажмите кнопку Сменить , чтобы выбрать или изменить сертификат.
6. По завершении нажмите кнопку Далее .
7. На странице Просмотр параметров нажмите кнопку Готово.
Создание пакета установщика Windows( MSI )
С помощью мастера RemoteApp можно создать пакет установщика Microsoft Windows (.msi) из любого приложения в списке Удаленные приложения RemoteApp.
Минимальным требованием для выполнения этой процедуры является членство в локальной группе Администраторы (или эквивалентной ей группе) на сервере узла сеансов удаленных рабочих столов.
Чтобы создать пакет установщика Windows
- Откройте диспетчер удаленных приложений RemoteApp на сервере узла сеансов удаленных рабочих столов. Для этого нажмите кнопку Пуск, откройте меню Администрирование, затем выберите пункты Службы удаленных рабочих столов и Диспетчер удаленных приложений RemoteApp.
- В списке Приложения RemoteApp выберите программу, для которой необходимо создать пакет установщика Windows. Чтобы выбрать несколько программ, нажмите и удерживайте нажатой клавишу CTRL при выборе программ.
- В области Действия для программы или выбранных программ щелкните Создание пакета установщика Windows.
- На странице Мастер удаленных приложений (RemoteApp) нажмите кнопку Далее.
- На странице Задание параметров пакета выполните следующие действия:
5.1. В поле Введите расположение для сохранения пакетов примите расположение по умолчанию или нажмите кнопку Обзор, чтобы указать новое расположение для сохранения пакета установщика Windows.
5.2. В разделе Параметры хост-сервера сеансов удаленных рабочих столов нажмите кнопку Изменить, чтобы изменить имя сервера или номер порта протокола удаленного рабочего стола (RDP). По завершении нажмите кнопку ОК .
5.3. В области Параметры шлюза удаленных рабочих столов нажмите кнопку Изменить , чтобы изменить текущую настройку или задать, будут ли клиенты использовать сервер Шлюз удаленного рабочего стола для подключения к целевому серверу Узел сеансов удаленных рабочих столов через брандмауэр. По завершении нажмите кнопку ОК.
5.4. Для того, чтобы подписать файл цифровой подписью, в области Параметры сертификата нажмите кнопку Сменить, чтобы выбрать или изменить сертификат. Выберите нужный сертификат и нажмите кнопку ОК.
6. По завершении нажмите кнопку Далее .
7. На странице Настройка пакета распространения выполните следующие действия:
7.1. В области Значки ярлыков укажите, где будет располагаться ярлык программы на клиентских компьютерах.
7.2. В области Обрабатывать расширения файлов клиента укажите, будет ли данная программа обрабатывать расширения имен файлов клиентов.
Если сопоставить расширения имен файлов на клиентском компьютере с Удаленное приложение RemoteApp, все расширения имен файлов, обрабатываемые приложением на сервере Узел сеансов удаленных рабочих столов, также будут сопоставлены на клиентском компьютере с Удаленное приложение RemoteApp. Обратите внимание, что пользователи не получают запроса на подтверждение обработки сервером Узел сеансов удаленных рабочих столов расширений файлов для приложения.
8. После того, как свойства пакета распространения настроены, нажмите кнопку Далее .
9. На странице Просмотр параметров нажмите кнопку Готово .
После завершения работы мастера в новом окне будет открыта папка, в которой был сохранен пакет установщика Windows. Таким образом можно убедиться, что пакет установщика Windows (.msi) был создан.
Тестирование системы DIRECTUM в режиме RemoteApp
Общее сведение
В режиме RemoteaApp, система DIRECTUM работает в полном режиме, это значит, что все компонентов системы доступны.
Итак всем привет и хорошего дня, сегодня я покажу на практике, как сделать следующее:
Задача: на терминальном сервере активировать службу RemoteAPP и опубликовать приложение клиента 1С на подключение к развернутому кластеру 1C.
На сервер установлен гипервизор ESXi, а уже внутри него под каждую задачу развернуты виртуальные системы:
- Имеется доменnemdomb.local
- Имеется развернутый терминальный сервер
- Имеется сервер базы данных и кластер1с (все на одной машине, то лучше разделять по отдельным системам
- и отдельная рабочая станция.
Но пока как заготовка, терминальный сервер я разверну на сервере базы данных и кластере 1С (все на одной машине).
На терминальном сервере рекомендую пользовательский профили вынести на отдельный диск вместо системного:
Для чего нужен RemoteAPP – это технология расширения функционала терминального сервера посредством которой можно вместо того, чтоб каждому пользователю настраивать удаленное подключение где он будет работать с приложениями (Почта, 1С, печать и другими) сделать так чтобы у него на компьютере был вынесен ярлык через который запускается удаленная сессия с запуском опубликованного приложения.
К примеру: у меня сейчас два офиса, в одном (он же главный) располагается кластер 1с + база и терминальный сервер и вместо того, чтобы пользователи через удаленный рабочий стол заходили на терминальный сервер из другого офиса (это каждому нужно настраивать профиль: вывести ярлыки программ, организовать печать, обеспечить интернетом (а по соображениями безопасности я этого сделать не могу, просто так надо) у них на своих рабочих компьютерах настроен ярлык на запуск только опубликованного приложения. В рамках этой заметки я покажу на практике как это выглядит.
Создаю приложение которое будет опубликовано с использованием RemoteAPP на терминальном сервере:
Start – Control Panel – Administrative Tools – Server Manager – Roles – Remote Desktop Services – RemoteApp Manager (srv-host.nemdomb.local) – запускаю мастер: Add RemoteApp Programs, нажимаю Next, следующим шагом показывается какие текущие установленные приложения на терминальном сервере могут выступить в роли опубликованных через RemoteAPP, выбираю самое первое 1С Предприятие через нажатием на кнопку Properties можно:
Нажимаю на кнопку Next и перехожу к этапу мастера где отображается результирующая информация по настройкам публикуемого приложения, если все правильно и ничего не нужно изменять нажимаю Finish
Следующим шагом нужно экспортировать RemoteAPP созданное приложение с целью распространить на компьютеры пользователям которые будут с ним работать , делает это так, выделяется приложение и через правый клик на нем вызываются свойства.
Опубликованное приложением можно экспортировать, как rdp файл настроенного подключение так и как msi пакет (можно поставить локально его на компьютере пользователя или же через GPO установить)
Если выбрать экспорт в виде RDP файла: Create .rdp File, по умолчанию путь куда предлагает мастер экспорта сохранить rdp файл подключения: C:\Program Files\Packaged Programs, но никто не мешает изменить данный путь на любой другое более удобный. Я оставляю по умолчанию
Следующим шагом также выводится результирующая информация – если все хорошо то нажимаем кнопку Finish и откроется explorer местонахождения экспортированного файла опубликованного приложения 1С, если открыть свойства данного rdp файла, то можно обнаружить что в настройки подключения к терминальному сервере уже автоматически подставляются аутентификационные данные текущей сессии на компьютере:
Теперь копирую данный файл: 1cv8s.rdp на рабочую станцию с которой пользователь alektest будет взаимодействовать клиентом 1С Предприятие.
На заметку: чтобы передать файл простым копирование через проводник:
\\w7x86\с$ на рабочей станции в настройках брандмауера должны быть включены входящие правила:
- Общий доступ к файлам и принтерам (входящий трафик SMB ) – Профиль (Домен).
- Общий доступ к файлам и принтерам (эхо-запрос – входящий трафик ICMPv4) – Профиль (Домен)
На заметку: пользователи которые задействуют RemoteAPP приложения на терминальном сервере должны быть в группе Remote Desktop Users
Запускаю на рабочей станции Windows 7 (W7X86) переданный файл предварительно авторизовавшись в системе под учетной записью alektest
На следующем шаге ввожу пароль на авторизацию на терминальном сервере: (Практичнее будет использовать SSO, т.е. авторизация на терминальном сервере с использование доменной учетной записи, а на терминальном сервере в группу “Пользователи удаленного рабочего стола” (Remote Desktop Users) добавить группу “Пользователи домена”).
На заметку: если задействовать SSO то вводить ничего не придется, будет задействована доменная аутентификация без какого либо ввода пароля.
Ожидаю… Идет подключение к приложению
Видите, раз в приложении когда я его подготавливал для RemoteAPP я не указал базу и сервер, то первый раз когда пользователь подключается у него запускается информационное окно, что список информационных баз пуст и нужно настроить:
- Укажите наименование информационной базы: zup
- Выберите тип расположения информационной базы: На сервере 1С:Предприятия
Затем на следующем шаге указываю параметры информационной базы:
- Кластер серверов 1С:Предприятия:10.7.8.63
- Имя информационной базы в кластере: zup
Затем на следующем шаге все выбранное мастеров оставляю по дефолту
На этом установка клиента 1С на подключение завершена.
В итоге будет так:
Подключаюсь к данной базе zup нажатием на 1С:Предприятие и происходит подключение к базе путем ввода логина и пароля выданного Администратором 1С (хотя может и Вы можете совмещать две должности вместе: системный администратор + администратор 1С).
И вот вы внутри:
Работа с клиентом 1С на рабочем столе ничем особым не отличается если бы пользователь работал на терминальном сервере, теже самые окна, чтобы распечатать документы задействуется технология EasyPrint когда принтер с рабочей станции пробросится на терминальный сервер, и пользователь выбрав документ – печать также увидит и выбрав его распечатает.
Ниже скришот демонстрирует, открытое окно клиента 1С и “Диспетчер задач” во вкладке “Процессы” которого присутствует подключение к терминальному серверу через (mstsc.exe).
Чтобы задейстовать технологию EasyPrint и не ставить драйвера на терминальный сервер к рабочим станциям в домене предъявляются следующие требования:
Версия RDP клиента должна быть 6.1 или выше, посмотреть c:\windows\system32\mstsc.exe открыть свойства и посмотреть версию
Либо через командную строку
C:\Users\aollo>wmic datafile where name='c:\\windows\\system32\\mstsc.exe' get version
Version
6.1.7601.17514
Должен быть установлен .NET Framework 3.5 и выше, посмотреть что установлено в системе, так.: Открыть командную строку (c правами Администратора) и набрать следующую команду:
wmic product where "name like 'Microsoft .NET Framework%'" get name,version
он может снова подключиться, но теперь введя пароль не забыть поставить галочку “Запомнить учетные данные” чтобы больше не видеть данное окно.
Если же по каким бы то ни было причинам, пароль был введен и сохранен, а в последствии пользователь его изменил (обычно по централизованной политике раз в 3 месяца), то он не сможет подключиться, т.к. пароль запомнен изменить его можно вот так:
На рабочей станции пользователя: Windows 7 – Пуск – Панель управления – Диспетчер учетных записей, находим сохраненное подключение
Согласитель, не хорошо, что когда клиент 1с закрыт, сессия на терминальном сервере все еще висит, в таком случае на терминальном сервере настраиваются промежутки ограничения простоя и неактивности терминального соединения:
Если сессия не активно в течении одного дня – она завершается, если в статусе Disconnected то через 15 минут она закрывается.
Если же экспортировать приложение RemoteAPP не в rdp файл, а в msi пакет, то
- либо такжепередаем через проводник данный файл
- либо через подготавливаем групповую политику:
После перезагрузки рабочей станции на рабочем столе пользователя будет ярлык 1С
Если ранее уже через rdp файл было настроено подключеник к базе, то когда через GPO произвели установку msi пакета найстройки подключения в клиенте 1С уже присутствуют:
У меня было что политика применилась к компьютеру, но msi все равно не устанавливалась, в логах на компьютере Windows 7 были следующие ошибки:
Проблема была в месте откуда в момент создать групповой политики я указывал месторасположением msi файла, у компьютера не было прав доступа в данный каталог. Права на каталог месторасположения msi файла должны быть, чтобы у группы “Прошедшие проверку” были права на чтение (Чтение и выполение,Список содержимого папки,Чтение) и только тогда msi успешно отработает.
В итоге данная заметка шпаргалка готова и подлежит публикации на моем блоге практических заметок. Всего того, что пригодится в течении рабочего дня и самостоятельного изучения, повышения свой квалификации. Итого подведу итог практических действий:
- Развернут терминальный сервер
- Профиля будующих пользователей вынесены на отдельный логический диск.
- Посредством компоненты RemoteAPP и установленного ПО на сервере собраные пакеты задействующие технологию RemoteAPP для использования ПО, как будто оно установлена на рабочих местах пользователей, а все на самом деле не так, они работают в терминале. Таким образом достигается меньшая нагрузка на сеть.
- Чтобы запускать на рабочих станциях опубликованное приложение RemoteAPP, можно раз ввести аутентификационные данные на подключение к терминальному сервере или задействовать SSO.
- Также посредством GPO можно msi файл опубликованного приложения установить всем тем сотрудникам которые работают в программе 1С.
- На терминальном сервере можно централизованно по каждому профилю раскидать файл конфигурации на подключение к кластеру 1С и соответствующей базе. Об этом будет одна из следующих заметок.
Ну а пока я прощаюсь, я и так довольно много всего рассмотрел и не зачем еще более увеличивать данную заметку. Лучше много мелких и по теме, чем все сразу. До новых встреч, с уважением автор блога – ekzorchik.
В операционных системах семейства Windows (не домашней), можно включать режим удаленного рабочего стола. Это бывает очень удобно, по причине того, что работая на удаленной машине мы получаем картинку а не перекидываемся громоздкими файлами по сети или даже через интернет, что в разы увеличивает скорость работы. Другое дело что политика разработчиков ОС ограничила эту возможность только 1 рабочим пользователям. Если нам к примеру всетаки надо подключиться скажем через планшет и поработать на компьютере - почему же и нет!
Но если нам нужно запускать только одну определенную программу бывает не очень удобно ждать пока загрузится у нас удаленный рабочий стол потом загружать программу, а если мы даем доступ другу к компьютеру нам нет желания давать ему возможности бороздить у нас на нашей технике и читать конфидициалку.
В новых серверных версиях начиная с Windows Server 2008 появился интересное дополнение - функция Terminal Services RemoteApp (удаленные приложения). Вот ее мы сейчас и попробуем включить у себя. На примере открытия блокнота.
Распишем все по этапам.
1. Правим реестр. regedit.exe. И идем по ветке:
В разделе 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 строчки:
Сохраняем файл RemoteApp.rdp и запускаем.
При подключении спросит логин и пароль. Нужно чтобы учетная запись входила в группу Пользователи удаленного рабочего стола. Либо надо быть локальным админом, либо доменным. Если все условия соблюдены, то через пару секунд откроется Notepad.
В этой статье описывается процесс инициализации терминального сервера и описывается, что происходит при подключении пользователя к серверу и запуске приложения.
Применяется к: Windows Server 2012 R2
Исходный номер КБ: 186572
Терминал Windows Инициализация сервера
По мере загрузки Терминал Windows Сервер и загрузки основной операционной системы служба терминала Server (Termsrv.exe) начинает работу и создает стеки прослушивания (по одному протоколу и транспортной паре), которые прослушивают входящие подключения. Каждому подключению предоставляется уникальный идентификатор сеанса или "SessionID", который представляет отдельный сеанс на сервере терминала. Каждый процесс, созданный в сеансе, "помечен" со связанным SessionID, чтобы отличать пространство его имен от пространства имен любого другого подключения.
Сеанс консоли (клавиатуры, мыши и видео) на консоли (клавиатура, мышь и видео) всегда загружается первым и рассматривается как подключение клиента в особом случае и назначено SessionID. Сеанс консоли начинается как обычный сеанс Windows NT с настроенными Windows NT, мыши и клавишных драйверов.
Затем служба терминала Server вызывает диспетчер сеансов Windows NT (Smss.exe) для создания двух (по умолчанию = 2) бездействуют клиентские сеансы (после создания сеанса консоли), ожидающим клиентских подключений. Для создания несвоевременных сеансов диспетчер сеансов выполняет процесс Windows NT клиентской или серверной подсистемы выполнения (Csrss.exe), и этому процессу назначен новый sessionID. Процесс CSRSS также вызывает процесс Winlogon (Winlogon.exe) и модуль ядра Win32k.sys (Window Manager и графический интерфейс устройства - GDI) в рамках недавно связанного sessionID. Измененный загрузчик Windows NT распознает это Win32k.sys как загружаемое изображение SessionSpace заранее заданной в загонщике изображений. Затем он будет переместить кодовую часть изображения в физическую память с указателями из виртуального пространства адресов ядра для этого сеанса, если Win32k.sys еще не загружено. По дизайну он всегда будет присоединен к ранее загруженным кодом изображения (Win32k.sys), если он уже существует в памяти. Например, из любого активного приложения или сеанса.
Затем раздел данных (или не поделился) с этим изображением будет выделен новому сеансу из недавно созданного раздела памяти ядра для страниц SessionSpace. В отличие от сеанса консоли, клиентские сеансы терминала server настроены для загрузки отдельных драйверов для отображения, клавиатуры и мыши.
На данном этапе процесс CSRSS существует в собственном пространстве имен SessionID, при необходимости его данные моментально совмещены в процессе. Все процессы, созданные в рамках этого sessionID, будут выполняться в SessionSpace процесса CSRSS автоматически. Это предотвращает доступ к данным другого сеанса для различных sessionID-процессов.
Подключение клиентов
Клиент RDP может быть установлен и запущен на любом Windows терминале (на основе WinCE), Windows для workgroups 3.11 под управлением TCP/IP-32b или платформы API Microsoft Win32. Не Windows клиенты поддерживаются надстройка Citrix Metaframe. Размер Windows для исполняемого файла клиента RDP рабочих групп составляет около 70 КБ, используется рабочий набор 300 КБ и для отображения данных используется 100 КБ. Клиент на основе Win32 имеет размер около 130 КБ, для отображения данных используется рабочий набор 300 КБ и 100 КБ.
Клиент инициирует подключение к терминалу Server через TCP-порт 3389. Поток RDP-сервера терминала обнаруживает запрос сеанса и создает новый экземпляр Стека RDP для обработки нового запроса сеанса. Поток слушателей передает входящий сеанс новому экземпляру Стека RDP и продолжит прослушивание в порту TCP 3389 для дальнейших попыток подключения. Каждый стек RDP создается по мере подключения клиентских сеансов к согласованию сведений о конфигурации сеанса. Первыми сведениями будет установление уровня шифрования для сеанса. Сервер терминала изначально будет поддерживать три уровня шифрования: низкий, средний и высокий.
Между клиентом и сервером будет происходить обмен шрифтами, чтобы определить, какие общие системные шрифты установлены. Клиент уведомит Терминал Сервер всех установленных системных шрифтов, чтобы обеспечить более быструю отрисовку текста во время сеанса RDP. Если сервер терминала знает, какие шрифты доступны клиенту, вы можете сохранить пропускную способность сети, передав клиенту сжатые шрифты и строки символов Юникод, а не более крупные bitmaps.
По умолчанию все клиенты зарезервируют 1,5 МБ памяти для кэша bitmap, который используется для кэша bitmaps, таких как значки, панели инструментов, курсоры и так далее, но не используется для удержания строк Юникод. Кэш не удается (через ключ реестра) и перезаписывается с помощью алгоритма наименее часто используемых (LRU). Сервер терминала также содержит буферы, позволяющие управлять потоком передачи обновлений экрана клиентам, а не постоянному потоку. При высоком взаимодействии пользователя с клиентом буфер сбрасывается примерно 20 раз в секунду. Во время простоя или без взаимодействия с пользователем буфер замедляется до 10 раз в секунду. Вы можете настроить все эти номера через реестр.
После согласований сведений о сеансе экземпляр стека RDP сервера для этого подключения будет соединен к существующему сеансу пользователя Win32k, и пользователю будет предложено использовать Windows NT с логотипом. Если автолог настроен, зашифрованное имя пользователя и пароль будут переданы серверу терминала, и логотип будет продолжаться. Если в настоящее время нет простоя сеансов Win32k, служба терминала Server будет вызывать диспетчер сеансов (SMSS), чтобы создать новое пространство пользователя для нового сеанса. Большая часть сеанса пользователя Win32k использует общий код и загружается заметно быстрее после загрузки одного экземпляра.
После типов имени пользователя и пароля пакеты отправляются в зашифрованном виде на сервер терминала. Затем процесс Winlogon выполняет необходимую проверку подлинности учетной записи, чтобы убедиться, что пользователь имеет право на вход и передает домен и имя пользователя службе Terminal Server, которая поддерживает список sessionID домена и имени пользователя. Если sessionID уже связан с этим пользователем (например, отключен сеанс существует), текущий активный стек сеанса присоединен к старому сеансу. Затем удаляется временный сеанс Win32, используемый для исходного логотипа. В противном случае подключение продолжается в обычном режиме, и служба Terminal Server создает новое сопоставление sessionID домена и имени пользователя. Если для этого пользователя по каким-либо причинам активен несколько сеансов, отображается список сеансов и пользователь решает, какой из них выбрать для повторного подключения.
Запуск приложения
После логоса пользователя для пользователя отображается рабочий стол (или приложение, если в режиме одного приложения). Когда пользователь выбирает 32-битное приложение для запуска, команды мыши передаются серверу терминала, который запускает выбранное приложение в новое виртуальное пространство памяти (2-ГБ-приложение, ядро 2 ГБ). Все процессы на сервере терминала будут обмениваться кодом в режимах ядра и пользователя, где это возможно. Чтобы добиться общего доступа к коду между процессами, Windows NT виртуальной памяти (VM) использует защиту страниц с копией на записи. Если несколько процессов хотят читать и записывать одно и то же содержимое памяти, менеджер VM назначает защиту страниц скопив-на-записи в область памяти. Процессы (сеансы) будут использовать одно и то же содержимое памяти, пока не будет выполнена операция записи, после чего менеджер VM скопирует физический кадр страницы в другое расположение, обновит виртуальный адрес процесса, чтобы указать на новое расположение страницы, а теперь пометит страницу как read/write. Копирование на записи является полезным и эффективным для приложений, работающих на сервере терминала.
Когда приложение на основе Win32, например Microsoft Word, загружается в физическую память одним процессом (Сеанс), оно помечено как копирование на записи. Когда новые процессы (сеансы) также вызывают Word, загрузчик изображений просто будет указать новые процессы (сеансы) на существующую копию, так как приложение уже загружено в память. Когда требуются буферы и данные, определенные пользователю (например, сохранение в файле), необходимые страницы будут скопированы в новое физическое расположение памяти и помечены как чтение и записи для отдельного процесса (Сеанс). Менеджер VM защитит это пространство памяти от других процессов. Большинство приложений, однако, является кодом, который можно делиться и будет иметь только один экземпляр кода в физической памяти независимо от того, сколько раз оно будет запускаться.
Предпочтительнее (хотя и не обязательно) запускать 32-битные приложения в среде Terminal Server. 32-битные приложения (Win32) позволят совместно использовать код и работать более эффективно в нескольких пользовательских сеансах. Windows NT позволяет 16-битным приложениям (Win16) выполняться в среде Win32 путем создания виртуального компьютера на основе MS-DOS (VDM) для каждого приложения Win16 для выполнения. Все 16-битные выходные данные переводятся в вызовы Win32, которые выполняют необходимые действия. Так как приложения Win16 выполняются в своем VDM, код нельзя использовать для общего доступа между приложениями в нескольких сеансах. Перевод между вызовами Win16 и Win32 также требует системных ресурсов. Запуск приложений Win16 в среде терминала Server потенциально может потреблять в два раза больше ресурсов, чем будет использовать соответствующее приложение на основе Win32.
Отключение сеанса и вход пользователя
Отключение сеанса
Если пользователь решит отключить сеанс, процессы и все пространство виртуальной памяти останутся и будут оторваны на физический диск, если для других процессов требуется физическая память. Так как сервер терминала сохраняет сопоставление домена или имени пользователя и связанного с ним SessionID, при повторном подключении одного и того же пользователя существующий сеанс будет загружен и снова доступен. Дополнительным преимуществом RDP является возможность изменения разрешений экрана сеанса в зависимости от запросов пользователя для сеанса. Например, предположим, что пользователь ранее подключился к сеансу терминала Server с разрешением 800 x 600 и отключил его. Если пользователь переехав на другой компьютер с разрешением 640 x 480 и подключив его к существующему сеансу, рабочий стол будет повторно отозван для поддержки нового разрешения.
Logoff обычно прост в реализации. После выхода пользователя из сеанса все процессы, связанные с SessionID, завершались, и любая память, выделенная сеансу, была освобождена. Если пользователь работает с 32-битным приложением, например Microsoft Word, и выходит из сеанса, код самого приложения останется в памяти до тех пор, пока последний пользователь не выйдет из приложения.
Читайте также: