- Remote Desktop Services (Remote Desktop Services)
- Purpose
- Where applicable
- Developer audience
- Run-time requirements
- In this section
- What is Windows Terminal?
- Multiple profiles supporting a variety of command line applications
- Customized schemes and configurations
- Custom actions
- Unicode and UTF-8 character support
- GPU accelerated text rendering
- Background image support
- Command line arguments
- Терминальный сервер
- Различия терминального доступа и виртуализации рабочего стола
- Что такое терминальный сервер
- Преимущества и недостатки
- Архитектура и лицензирование
- Примеры продуктов
- Microsoft RDS
- Citrix XenApp и XenDesktop
- VMware Server и VMware ESX
- Оборудование для хостинга услуг RDS
Remote Desktop Services (Remote Desktop Services)
Purpose
Windows ServerВ 2012В R2, Windows ServerВ 2012, Windows ServerВ 2008В R2, or Windows ServerВ 2008 with Remote Desktop Services (formerly known as Terminal Services) allow a server to host multiple, simultaneous client sessions. Remote Desktop uses Remote Desktop Services technology to allow a single session to run remotely. A user can connect to a Remote Desktop Session Host (RDВ Session Host) server (formerly known as a terminal server) by using Remote Desktop Connection (RDC) client software. The Remote Desktop Web Connection extends Remote Desktop Services technology to the web.
This topic is for software developers. If you are looking for user information for Remote Desktop connections, See Remote Desktop Connection: frequently asked questions.
Where applicable
A Remote Desktop Connection (RDC) client can exist in a variety of forms. Thin-client hardware devices that run an embedded Windows-based operating system can run the RDC client software to connect to an RDВ Session Host server. Windows-, Macintosh-, or UNIX-based computers can run RDC client software to connect to an RDВ Session Host server to display Windows-based applications. This combination of RDC clients provides access to Windows-based applications from virtually any operating system.
Developer audience
Developers who use Remote Desktop Services should be familiar with the C and C++ programming languages and the Windows-based programming environment. Familiarity with client/server architecture is required. The Remote Desktop Web Connection includes scriptable interfaces to create and deploy scriptable virtual channels within Remote Desktop Services web applications.
Run-time requirements
Applications that use Remote Desktop Services require Windows ServerВ 2012В R2, WindowsВ 8.1, Windows ServerВ 2012, WindowsВ 8, Windows ServerВ 2008В R2, WindowsВ 7, Windows ServerВ 2008, or WindowsВ Vista. To use Remote Desktop Web Connection functionality, the Remote Desktop Services client application requires Internet Explorer and a connection to the World Wide Web. For information about run-time requirements for a particular programming element, see the Requirements section of the reference page for that element.
In this section
Describes how to use the Remote Desktop ActiveX control.
You use the Remote Desktop Protocol Provider API to create a protocol to provide communication between the Remote Desktop Services service and multiple clients.
Virtual channels are software extensions that can be used to add functional enhancements to a Remote Desktop Services application.
The RemoteFX Media Redirection API is used in a Remote Desktop session to identify areas of the server that are displaying fast changing content, such as video. This content can then be video encoded and sent to the client in encoded format.
Describes how to use the Remote Desktop Connection Broker client API.
The personal desktop task agent API is used to handle scheduled updates to a personal virtual desktop.
Remote Desktop Services (formerly known as Terminal Services) provides functionality similar to a terminal-based, centralized host, or mainframe, environment in which multiple terminals connect to a host computer.
The Remote Desktop Management Services (RDMS) Provider manages virtual desktop infrastructure (VDI) environments.
Documentation of property methods that you can use to examine and configure Remote Desktop Services user properties. Remote Desktop Services functions, structures, and Remote Desktop Web Connection scriptable interfaces are also documented.
A list of the Remote Desktop Services shortcut keys.
The Remote Desktop Services WMI provider provides programmatic access to the information and settings that are exposed by the Remote Desktop Services Configuration/Connections Microsoft Management Console (MMC) snap-in.
How to program in the Remote Desktop Services environment and how to extend Remote Desktop Services (formerly known as Terminal Services) technology to the web by using Remote Desktop Web Connection.
What is Windows Terminal?
Windows Terminal is a modern terminal application for users of command-line tools and shells like Command Prompt, PowerShell, and Windows Subsystem for Linux (WSL). Its main features include multiple tabs, panes, Unicode and UTF-8 character support, a GPU accelerated text rendering engine, and the ability to create your own themes and customize text, colors, backgrounds, and shortcuts.
Multiple profiles supporting a variety of command line applications
Any application that has a command line interface can be run inside Windows Terminal. This includes everything from PowerShell and Command Prompt to Azure Cloud Shell and any WSL distribution such as Ubuntu or Oh-My-Zsh.
Customized schemes and configurations
You can configure your Windows Terminal to have a variety of color schemes and settings. To learn how to make your own color scheme, visit the Color schemes page. You can also find custom Terminal configurations in the Custom terminal gallery.
Custom actions
There are a variety of custom commands you can use in Windows Terminal to have it feel more natural to you. If you don’t like a particular keyboard shortcut, you can change it to whatever you prefer.
For example, the default shortcut to copy text from the command line is ctrl+shift+c . You can change this to ctrl+1 or whatever you prefer. To open a new tab, the default shortcut is ctrl+shift+t , but maybe you want to change this to ctrl+2 . The default shortcut to flip between the tabs you have open is ctrl+tab , this could be changed to ctrl+- and used to create a new tab instead.
You can learn about customizing shortcuts on the Actions page.
Unicode and UTF-8 character support
Windows Terminal can display Unicode and UTF-8 characters such as emoji and characters from a variety of languages.
GPU accelerated text rendering
Windows Terminal uses the GPU to render its text, thus providing improved performance over the default Windows command line experience.
Background image support
You can have background images and gifs inside your Windows Terminal window. Information on how to add background images to your profile can be found on the Profile — Appearance page.
Command line arguments
You can set Windows Terminal to launch in a specific configuration using command line arguments. You can specify which profile to open in a new tab, which folder directory should be selected, open the terminal with split window panes, and choose which tab should be in focus.
For example, to open Windows Terminal from PowerShell with three panes, with the left pane running a Command Prompt profile and the right pane split between your PowerShell and your default profile running WSL, enter:
Learn how to set up command-line arguments on the Command line arguments page.
Терминальный сервер
До появления персональных компьютеров вычислительные задачи выполнялись на больших машинах – «мэйн-фреймах», которые в нашей стране назывались ЭВМ. Пользователи получали к ним доступ в режиме разделения времени через терминал, чаще всего представлявший собой алфавитно-цифровой дисплей и клавиатуру. Такой терминал подключался к ЭВМ через выделенную линию, в качестве которой могла использоваться даже обычная телефонная линия, либо, позднее, через ранние прообразы компьютерной сети. Именно в таком режиме, будучи ещё школьником, начинал свою работу основатель компании Microsoft Билл Гейтс.
Режим разделения времени означает, что процессорное время разделяется между всеми пользователями по очереди (которых могло быть до нескольких сот). Однако за счёт относительно высокого быстродействия процессора и небольшого периода обслуживания каждому пользователю казалось, что он работает на ЭВМ в полном одиночестве.
Так выглядели терминальные устройства и ЭВМ VAX-11/780 компании DEC. Такая ЭВМ и терминалы были поставлены для обслуживания московской Олимпиады 1980 г. (источник: thg.ru)
В наши дни решение удалённого терминального доступа RDS (Remote Desktop Service) продолжает успешно использоваться и входит в состав операционной системы Windows Server, начиная с Windows NT 4.0. Оно стало основой для более продвинутого решения виртуальной инфраструктуры рабочих столов VDI (Virtual Desktop Infrastructure).
Различия терминального доступа и виртуализации рабочего стола
Основное различие между решениями RDS и VDI в том, что если в RDS у всех пользователей рабочий стол выглядит одинаково (берётся с удалённого сервера), то в VDI каждый пользователь может иметь свой собственный рабочий стол, т. е. полностью эмулировать работу на персональном компьютере.
Ключевым отличием решений виртуализации рабочего стола и терминального сервера является уровень изоляции ресурсов для пользователей. В терминальном сервере создаются учётные записи пользователей, которые обеспечивают работу в единой операционной системе так, чтобы они не мешали друг другу. На терминалы пользователей устанавливаются специальные приложения, которые дают им возможность работать с отдельными сессиями на терминальном сервере. Однако в терминальном режиме можно запустить не каждое приложение. При терминальном доступе изоляция пользователей происходит на уровне сессии. И если какое-то приложение вызывает сбой на уровне операционной системы, то вместе с пользователем, вызвавшим сбой, перезагрузятся и остальные пользователи, работающие на этом же сервере.
Технология виртуализации VDI предоставляет гораздо большие возможности, в частности возможность создания персональной виртуальной машины для каждого пользователя. Однако это требует бóльших серверных мощностей по сравнению с терминальным доступом. Кроме того, для развёртывания VDI часто требуется система хранения данных с высоким IOPS.
Решение в пользу одного или другого решения должно приниматься на основе анализа стоящих задач.
Терминальный сервер проще и дешевле в развёртывании, однако часто не обеспечивает требуемого уровня изоляции пользователей.
Виртуализация полезна в случаях, если пользователю необходимы права администратора либо требуются приложения, которые нестабильно работают на терминальном сервере.
Что такое терминальный сервер
Итак, терминальный сервер – это сервер или кластер серверов, который обеспечивает удалённое обслуживание многих клиентских систем (рабочих компьютеров пользователей), которые подключаются к локальной сети без использования модема или сетевой интерфейсной карты. Эта концепция была введена компанией Microsoft в виде функции терминальных услуг (terminal services) в ОС Windows Server. Начиная с версии Windows Server 2008 R2, эти услуги стали именоваться Remote Desktop Services (RDS).
На сегодняшний день для организации сервера терминалов Windows чаще всего используется ОС Windows Server 2019, 2016, 2012 R2. Более ранние версии 2008 и 2010 уже мало актуальны и сейчас лишь поддерживаются.
Преимущества и недостатки
Терминальные серверы дают возможность централизованного хостинга приложений и данных предприятия вне зависимости от расположения и платформы устройств конечных пользователей, давая доступ к ним через терминальные клиентские устройства. Эта концепция даёт много преимуществ:
- Доступ к цифровым ресурсам предприятия из любого места, в любое время и практически с любого устройства.
- Наличие единой точки мониторинга позволяет контролировать всю инфраструктуру с центрального пульта.
- Приложения устанавливаются однократно и регулярно обновляются в терминальном сервере централизованно, то есть нет необходимости делать это на каждом компьютере в сети.
- Наличие одновременной централизованной лицензии вместо лицензирования каждого устройства, что снижает стоимость лицензирования.
- Замена пользовательских компьютеров на рабочих местах на т. н. «тонкие клиенты» (thin clients – устройства для подключения к терминальному серверу) снижает капитальные и операционные затраты предприятия за счёт централизации обслуживания, а также снижения расходов на электроэнергию.
- Увеличивается срок службы терминального оборудования.
- Повышается безопасность сети предприятия.
- Однако и недостатки у такого решения тоже есть:
- Концентрация всей функциональности в рамках одного или нескольких серверов. Поэтому выход из строя любого элемента между приложением и терминалами приводит к простою многих пользователей.
- Усиливаются последствия ошибок конфигурации и работы ПО, которые затрагивают сразу всех пользователей.
- Возможные проблемы с лицензированием: некоторые приложения не предусматривают работы нескольких пользователей на одном сервере или требуют использования более дорогих лицензий.
Архитектура и лицензирование
Терминальный сервер состоит из трёх основных компонентов:
- Многоядерный сервер для централизованного хостинга ресурсов.
- Протокол для связи с удалёнными рабочими столами пользователей RDP (Remote Desktop Protocol), который управляет передачей данных между сервером и клиентом.
- Клиентская программа на каждом пользовательском устройстве, которая позволяет ему подключаться к серверу по протоколу RDP.
Кроме того, необходима служба лицензирования терминалов (Terminal Services Licensing Service), которая представляет серверу клиентские лицензии служб терминалов TS CAL (Terminal Services Client Access License), чтобы они могли к нему подключаться. Список сессий при этом сохраняется в службе Sessions Directory Service. Список индексируется по имени пользователя, что позволяет ему всё время подключаться к одному и тому же серверу.
Начиная с Windows Server 2008, лицензии служб удалённых рабочих столов называют RDS CAL.
Существует два типа лицензий RDS CAL.
- CAL на пользователя, которая позволяет установить сеанс удалённого рабочего стола на сервере независимо от количества устройств, используемых для подключения.
- CAL на устройство, которая позволяет определенному устройству установить сеанс удалённого рабочего стола на сервере независимо от количества пользователей, подключённых с помощью этого устройства.
Примеры продуктов
Microsoft RDS
Службы удалённого рабочего стола (RDS) – один из компонентов Microsoft Windows Server, позволяющий пользователю работать под управлением удалённого компьютера, на котором установлены нужные ему приложения, через устройства тонкого клиента либо через сетевое соединение при помощи протокола удалённого рабочего стола (RDP).
Службы удалённого рабочего стола RDS (источник: Microsoft)
Платформа RemoteApp Service позволяет представлять приложения, доступ к которым может быть получен удалённо через Службы удалённых рабочих столов (RDS), как если бы они были запущены на локальном компьютере пользователя. Программа RemoteApp запускается на терминале пользователя в собственном окне, размеры которого можно менять, оно может перемещаться между несколькими мониторами, а также имеет собственный значок на панели задач. Если один пользователь запускает несколько программ RemoteApp на одном сервере, эти программы RemoteApp совместно используют один сеанс RDS.
Citrix XenApp и XenDesktop
В решении Citrix используется платформа Microsoft RDS. В инфраструктуре виртуализации Citrix есть много компонентов, но главные среди них следующие:
- Citrix Virtual Apps.
- Citrix Virtual Apps & Desktops.
Citrix Virtual Apps – основной продукт, предназначенный для удалённой работы в приложениях для пользователей. Citrix Virtual Apps & Desktops расширяет возможности RDS, организуя инфраструктуру виртуальных рабочих столов (VDI). Оба продукта обеспечивают пользователям безопасную работу приложений и настройки безопасности в зависимости от устройства пользователя.
В названиях продуктов терминального сервера Citrix есть некоторая путаница. Компания ввела наименования Citrix XenApp для виртуализации приложений и Citrix XenDesktop для виртуализации рабочих столов. Затем Citrix объединила оба продукта в одном бренде – XenDesktop 7.0. Затем компания отказалась от такого объединения, и это иногда путает пользователей. Сейчас Citrix опять поставляет два раздельных продукта – XenApp 7.6 и XenDesktop 7.6, в то же время называя их Citrix Virtual Apps и Citrix Virtual Apps & Desktops, поскольку второе решение включает в себя практически весь функционал первого.
Как Citrix Virtual Apps, так и Citrix Virtual Apps & Desktops поставляются в трёх комплектациях, с разным функционалом и ценами:
Для того чтобы повысить воспринимаемое качество работы пользователей, нужно приобрести и другие продукты – такие, как Citrix Provisioning Services (PVS) и Citrix Director
Установка продуктов Citrix может быть достаточно сложной, и для этой цели часто требуются сертифицированные профессионалы. Кроме того, необходимо подобрать правильные конфигурации большого количества компонентов. Для поддержки инфраструктуры Citrix также требуется база данных Microsoft SQL.
VMware Server и VMware ESX
Компания VMware занимает прочные позиции на рынке виртуализации серверов, а также на рынке ПО виртуализации рабочих столов (VDI). В сегменте бесплатных средств виртуализации серверов есть продукт VMware Server, который с 2010 года не поддерживается.
Функции VMware Server (ранее VMware GSX Server) входят теперь в функционал решения VMware ESX. Решение VMware Server позволяет не только работать в режиме терминального сервера, но также есть возможность создания, редактирования и работы виртуальных машин. В нём могут работать виртуальные машины, созданные другими продуктами VMware, а также Microsoft Virtual PC. В настоящее время функции VMware Server заменены функцией «Shared Virtual Machines», введённой в продукте VMware Workstation 8.0 и его более поздних версиях.
Оборудование для хостинга услуг RDS
RDS – прежде всего программное решение. В качестве аппаратной платформы для услуг RDS может подойти практически любой, достаточно мощный сервер, который выбирается согласно потребностям предприятия или организации. Он должен соответствовать нуждам пользователей и ресурсам, необходимым для эффективного исполнения на сервере рабочих приложений, чтобы ни один сотрудник не испытывал затруднений или задержек при работе приложений.
Это могут быть, например, следующие платформы: