O Remote Desktop Services (RDS), conhecido como Terminal Services no Windows Server 2008 e versões anteriores, é um dos componentes do Microsoft Windows que permite a um usuário iniciar e controlar uma sessão interativa em um computador remoto ou máquina virtual através de uma conexão de rede.

O RDS é a implementação da Microsoft da arquitetura de cliente magro (thin client), onde o software Windows e toda a área de trabalho do computador que executa o RDS tornam-se acessíveis a qualquer máquina cliente remota que suporte o Remote Desktop Protocol (RDP). As interfaces de usuário são exibidas do servidor para o sistema cliente, e a entrada do sistema cliente é transmitida para o servidor – onde ocorre a execução do software. Isso contrasta com sistemas de streaming de aplicativos, como o Microsoft App-V, nos quais os programas de computador são transmitidos para o cliente sob demanda e executados na máquina cliente.

O RDS foi lançado pela primeira vez em 1998 como Terminal Server no Windows NT 4.0 Terminal Server Edition, uma edição independente do Windows NT 4.0 Server que permitia aos usuários fazer login remotamente. A partir do Windows 2000, foi integrado sob o nome de Terminal Services como um componente opcional nas edições de servidor da família de sistemas operacionais Windows NT, recebendo atualizações e melhorias a cada versão do Windows. O Terminal Services foi então renomeado para Remote Desktop Services com o Windows Server 2008 R2 em 2009. O RemoteFX foi adicionado ao RDS como parte do Service Pack 1 do Windows Server 2008 R2.

Visão geral O Windows inclui quatro componentes de cliente que utilizam o RDS: Assistência Rápida (Windows 10 e posterior) e Assistência Remota do Windows (Windows XP ao Windows 8.1) Conexão de Área de Trabalho Remota (RDC) Troca rápida de usuário Subsistema Windows para Linux (via MSRDC)

Os dois primeiros são utilitários individuais que permitem a um usuário operar uma sessão interativa em um computador remoto através da rede. No caso da Assistência Remota, o usuário remoto precisa receber um convite e o controle é cooperativo. No caso do RDC, entretanto, o usuário remoto abre uma nova sessão no computador remoto e possui todos os poderes concedidos pelos direitos e restrições de sua conta de usuário. A Troca Rápida de Usuário permite que os usuários alternem entre contas de usuário no computador local sem fechar softwares e fazer logoff. A Troca Rápida de Usuário faz parte do Winlogon e utiliza o RDS para realizar sua função de alternância. Desenvolvedores terceiros também criaram software cliente para RDS. Por exemplo, o rdesktop suporta plataformas Unix.

Embora o RDS seja fornecido com a maioria das edições do Windows desde o Windows XP, sua funcionalidade difere em cada versão. O Windows XP Home Edition (e edições Home posteriores do Windows) não aceita nenhuma conexão RDC, reservando o RDS apenas para Troca Rápida de Usuário e Assistência Remota. Outras versões cliente do Windows permitem apenas o máximo de um usuário remoto para se conectar ao sistema, ao custo do usuário que está logado no console ser desconectado. O Windows Server permite que dois usuários se conectem ao mesmo tempo. Este esquema de licenciamento, chamado "Área de Trabalho Remota para Administração", facilita a administração de computadores não assistidos ou sem monitor. Somente adquirindo licenças adicionais (além da licença do Windows) é que um computador executando o Windows Server pode atender a vários usuários remotos simultaneamente e alcançar uma infraestrutura de área de trabalho virtual (VDI).

Para uma organização, o RDS permite que o departamento de TI instale aplicativos em um servidor central em vez de em vários computadores. Usuários remotos podem fazer logon e usar esses aplicativos pela rede. Essa centralização pode facilitar a manutenção e a resolução de problemas. O RDS e os sistemas de autenticação do Windows impedem que usuários não autorizados acessem aplicativos ou dados.

A Microsoft possui um acordo de longa data com a Citrix para facilitar o compartilhamento de tecnologias e licenciamento de patentes entre o Microsoft Terminal Services e o Citrix XenApp (anteriormente Citrix MetaFrame e Citrix Presentation Server). Nesse arranjo, a Citrix tem acesso ao código fonte principal da plataforma Windows, permitindo que seus desenvolvedores melhorem a segurança e o desempenho da plataforma Terminal Services. No final de dezembro de 2004, as duas empresas anunciaram uma renovação de cinco anos desse acordo para cobrir o Windows Vista.

Componentes do servidor O componente principal do servidor RDS é o Terminal Server (termdd.sys), que escuta na Porta TCP 3389. Quando um cliente Remote Desktop Protocol (RDP) se conecta a esta porta, ele é marcado com um SessionID exclusivo e associado a uma sessão de console recém-criada (Sessão 0, apenas modo de caractere, teclado, mouse e interface de usuário). O subsistema de login (winlogon.exe) e o subsistema gráfico GDI são então iniciados, lidando com a tarefa de autenticar o usuário e apresentar a GUI. Esses executáveis são carregados em uma nova sessão, em vez da sessão de console. Ao criar a nova sessão, os drivers de dispositivo gráfico e de teclado/mouse são substituídos por drivers específicos de RDP: RdpDD.sys e RdpWD.sys. O RdpDD.sys é o driver de dispositivo que captura as chamadas de renderização da UI em um formato transmissível via RDP. O RdpWD.sys atua como driver de teclado e mouse; ele recebe entrada de teclado e mouse pela conexão TCP e os apresenta como entradas locais. Ele também permite a criação de canais virtuais, que permitem que outros dispositivos, como disco, áudio, impressoras e portas COM sejam redirecionados. Os canais conectam-se ao cliente pela conexão TCP; conforme os canais são acessados para dados, o cliente é informado da solicitação, que é então transferida via conexão TCP para o aplicativo. Todo esse procedimento é realizado pelo servidor de terminal e pelo cliente, com o RDP mediando a transferência correta, de forma totalmente transparente para as aplicações. As comunicações RDP são criptografadas usando criptografia RC4 de 128 bits. Do Windows Server 2003 em diante, ele pode usar um esquema de criptografia compatível com FIPS 140, ou criptografar comunicações usando o padrão Transport Layer Security (TLS).

Assim que um cliente inicia uma conexão e é informado de uma invocação bem-sucedida da pilha de serviços de terminal no servidor, ele carrega o dispositivo, bem como os drivers de teclado/mouse. Os dados da UI recebidos via RDP são decodificados e renderizados, enquanto as entradas de teclado e mouse na janela que hospeda a UI são interceptadas pelos drivers e transmitidas via RDP ao servidor. Ele também cria outros canais virtuais e configura o redirecionamento. A comunicação RDP pode ser criptografada em níveis baixo, médio ou alto. Com criptografia baixa, a entrada do usuário (dados de saída) é criptografada usando uma cifra fraca (RC4 de 40 bits). Com criptografia média, os pacotes da UI (dados recebidos) também são criptografados com essa cifra fraca. A configuração "Criptografia alta (Não exportação)" usa RC4 de 128 bits e "Criptografia alta (Exportação)" usa RC4 de 40 bits. Ao definir a Camada de Segurança para "SSL (TLS 1.0)", o Transport Layer Security até a versão 1.2 está disponível.

Terminal Server O Terminal Server é o componente de servidor do Terminal Services. Ele lida com a tarefa de autenticar clientes, bem como disponibilizar os aplicativos remotamente. Também é encarregado de restringir os clientes de acordo com o nível de acesso que possuem. O Terminal Server respeita as políticas de restrição de software configuradas, a fim de limitar a disponibilidade de certos softwares apenas a um determinado grupo de usuários. As informações da sessão remota são armazenadas em diretórios especializados, chamados Diretório de Sessão, localizados no servidor. Diretórios de sessão são usados para armazenar informações de estado sobre uma sessão e podem ser usados para retomar sessões interrompidas. O servidor de terminal também deve gerenciar esses diretórios. Os Terminal Servers também podem ser usados em um cluster.

No Windows Server 2008, ele foi significativamente reformulado. Ao fazer login, se o usuário se conectou ao sistema local usando uma conta de Domínio do Windows Server, as credenciais do mesmo sign-on podem ser usadas para autenticar a sessão remota. No entanto, isso requer que o Windows Server 2008 seja o SO do servidor de terminal, enquanto o SO do cliente é limitado ao Windows Server 2008, Windows Vista e Windows 7. Além disso, o servidor de terminal pode ser configurado para permitir a conexão a programas individuais, em vez de toda a área de trabalho, por meio de um recurso chamado RemoteApp. O Terminal Services Web Access (TS Web Access) permite que uma sessão RemoteApp seja invocada a partir do navegador da web. Inclui o controle Web Part do TS Web Access, que mantém a lista de RemoteApps implantados no servidor e mantém a lista atualizada. O Terminal Server também pode ser integrado ao Windows System Resource Manager para limitar o uso de recursos de aplicativos remotos.

O Terminal Server é gerenciado pelo snap-in do Terminal Server Manager no Microsoft Management Console (MMC). Pode ser usado para configurar os requisitos de login, bem como para aplicar uma única instância de sessão remota. Também pode ser configurado usando Diretiva de Grupo (Group Policy) ou Windows Management Instrumentation (WMI). No entanto, não está disponível nas versões cliente do Windows, onde o servidor é pré-configurado para permitir apenas uma sessão e aplicar os direitos da conta de usuário na sessão remota, sem qualquer personalização.

Gateway de Área de Trabalho Remota O componente de serviço Gateway de Área de Trabalho Remota, também conhecido como RD Gateway, pode realizar o tunelamento da sessão RDP usando um canal HTTPS. Isso aumenta a segurança do RDS ao encapsular a sessão com Transport Layer Security (TLS). Isso também permite a opção de usar o Internet Explorer como cliente RDP. O cliente RDP oficial da MS para macOS suporta o RD Gateway a partir da versão 8. Ele também está disponível para iOS e Android.

Este recurso foi introduzido nos produtos Windows Server 2008 e Windows Home Server.

Em outubro de 2021, a Thincast, principal contribuidora do projeto FreeRDP, publicou a primeira solução de Remote Desktop Gateway rodando nativamente no Linux.

Funções (Roles)

Gateway de Área de Trabalho Remota Permite que usuários autorizados se conectem a áreas de trabalho virtuais, programas RemoteApp e áreas de trabalho baseadas em sessão através de uma rede privada ou da Internet.

Agente de Conexão de Área de Trabalho Remota Permite que os usuários se reconectem à sua área de trabalho virtual existente, programas RemoteApp e áreas de trabalho baseadas em sessão. Ele possibilita a distribuição uniforme de carga entre os servidores Host de Sessão de RD em uma coleção de sessões ou entre áreas de trabalho virtuais em pool e fornece acesso a áreas de trabalho virtuais em uma coleção.

Host de Sessão de Área de Trabalho Remota Permite que um servidor hospede programas RemoteApp como áreas de trabalho baseadas em sessão. Os usuários podem se conectar aos servidores Host de Sessão de RD em uma coleção de sessões para executar programas, salvar arquivos e usar recursos nesses servidores.

Host de Virtualização de Área de Trabalho Remota Permite que os usuários se conectem a áreas de trabalho virtuais usando a Conexão de Área de Trabalho Remota e RemoteApp.

Acesso Web à Área de Trabalho Remota Permite que os usuários acessem a Conexão de Área de Trabalho Remota e RemoteApp através do Menu Iniciar ou de um navegador da web.