リモート デスクトップ サービスとは、Windowsの画面を遠隔操作できるリモートデスクトップ機能である。英:Remote Desktop Services、RDS、旧称:ターミナル サービス、英:Terminal Servicesと称し、マイクロソフトが開発・提供している。Windows Server 2008 R2 より名称がターミナル サービスからリモート デスクトップ サービスに変更になった。

## 概要

RDSは、マイクロソフトによるシンクライアントアーキテクチャの実装であり、Windowsソフトウェア、およびRDSを実行しているコンピューターのデスクトップ全体が、Remote Desktop Protocol(RDP)をサポートする任意のリモートクライアントマシンからアクセスできるようになっている。ユーザーインターフェイスは、サーバからクライアントシステムに表示され、逆にクライアントシステムからの入力がサーバに送信される。ソフトウェアの実行はサーバ側で行われる。これは、コンピュータプログラムがオンデマンドでクライアントにストリーミングされ、クライアントマシンで実行されるMicrosoft App-Vのようなアプリケーションストリーミングシステムとは対照的である。

RDPはもともと米国シトリックス・システムズが複数の端末から複数ユーザでログオンするための拡張機能としてWindows NT 3.51向けに開発した『WinFrame』に端を発する技術である。1997年にマイクロソフトとシトリックス・システムズでこの技術の共同開発に踏み切り、それ以後、Windows 2000 Server以降ではオペレーティングシステム (OS) の標準機能として取り込まれた。『WinFrame』という商品自体は『MetaFrame』さらに『Citrix Presentation Server』と名前を変え、現在に至る。

Windowsには、RDSを使用する3つのクライアントコンポーネントが含まれる。

1. Windowsリモートアシスタンス
2. リモートデスクトップ接続(RDC)
3. ユーザーの簡易切り替え

最初の2つは、ユーザーがネットワーク経由でリモートコンピュータを制御できるようにする個別のユーティリティである。リモートアシスタンスの場合、リモートユーザーは招待を受け、同じセッション内で招待者と共同で招待者のデスクトップの制御を行う。一方、RDCの場合、リモートユーザーはリモートコンピュータで新しいセッションを開き、ユーザーアカウントが持つ権限が付与される。ユーザーの簡易切り替えにより、ユーザーはソフトウェアを終了してログアウトすることなく、ローカルコンピューター上のユーザーアカウントを切り替えることができる。ユーザーの簡易切り替えはWinlogonの一部であり、RDSを使用してユーザーの簡易切り替えを実現する。サードパーティ開発者も、RDS用のクライアントソフトウェアを作成している。たとえば、rdesktopはUNIXプラットフォームをサポートする。

通常フレームレートは30FPSに制限されているが、サーバー側の制限を60FPSに変更する手順が公開されている。

## サーバコンポーネント

### ターミナルサーバ

ターミナルサーバは、ターミナルサービスのサーバコンポーネントである。クライアントの認証と、アプリケーションをリモートで利用できるように処理する。また、クライアントが持つ権限レベルに応じてクライアントができる作業に制限をかけることもできる。ターミナルサーバは、構成されたソフトウェア制限ポリシーを尊重して、特定のソフトウェアを特定のユーザーグループのみ利用できるように制限する。

### リモートデスクトップゲートウェイ

リモートデスクトップゲートウェイサービスコンポーネントは、RDゲートウェイとしても知られ、HTTPSチャネルを使ってRDPセッションをトンネリングする。これにより、セッションがTransport Layer Security(TLS)でカプセル化されるため、RDSのセキュリティが向上する。そのためInternet ExplorerをRDPクライアントとして使用する選択肢も可能になる。macOS用の公式MSRDPクライアントは、バージョン8以降のRDゲートウェイをサポートする。これはiOSおよびAndroidでも使用できる。

この機能は、Windows Server 2008およびWindows Home Serverで導入された。

### リモート デスクトップ HTML5 Web クライアント

マイクロソフトは2018年後半にリモートデスクトップHTML5 Webクライアントをリリースした。このクライアントを使うと、ユーザーはインストールされているリモートデスクトップクライアントを使用せずに、リモートアプリまたはリモートデスクトップに接続できる。WebクライアントはTLSで保護されたポート443を使用し、RDゲートウェイを使用せずにリモートデスクトップサービスのリモートデスクトップセッションホストとの通信が可能になる。

### ロール

- Remote Desktop Gateway
- Remote Desktop Connection Broker Role
- Remote Desktop Session Host
- Remote Desktop Virtualization Host
- Remote Desktop Web Access
- Remote Desktop Licensing

### RemoteApp

RemoteApp(またはTS RemoteApp)は、Windows Server 2008 R2以降で使用できるRDSの特別なモードであり、リモートセッション構成がクライアントオペレーティングシステムに統合されている。

### Windowsデスクトップ共有

Windows Vista以降では、ターミナルサービスは、Windowsデスクトップ共有として知られる複数人のデスクトップ共有機能を含む。RDP接続ごとに新しいユーザーセッションを作成するターミナルサービスとは異なり、Windowsデスクトップ共有では、新しいセッションを作成せずに、現在ログインしているユーザーのコンテキストでリモートセッションをホストし、RDPを介してデスクトップまたはそのサブセットを使えるようにする。Windowsデスクトップ共有は、デスクトップ全体、特定の領域のみ、または特定のアプリケーションのみを共有するために使用できる。

### RemoteFX

GPUを仮想化し、高度なグラフィックス機能を利用できるRemoteFX機能がWindows Server 2008 R2 サービスパック1以降から追加されたが、セキュリティ上の脆弱性が発見され、RemoteFXは開発終了・廃止となった(2020年7月の月例セキュリティ更新で無効化)。

## クライアントソフトウェア

### リモートデスクトップ接続

リモートデスクトップ接続(英: Remote Desktop Connection、RDC、リモートデスクトップとも呼ばれ、以前はマイクロソフト ターミナルサービス クライアント、mstscまたはtsclientと呼ばれる) は、RDSのクライアントアプリケーションである。これにより、ユーザーはターミナルサービスサーバを実行しているネットワークコンピュータにリモートでログインできる。RDCは、リモートシステムのデスクトップインターフェイス(またはアプリケーションGUI)を、ローカルでアクセスされたかのように表示する。

### その他のクライアント

マイクロソフトは、Windows以外のさまざまなプラットフォーム用の公式クライアントを提供している。

- MacOS:Microsoft Remote Desktop for Mac
- Android:Microsoft Remote Desktop
- iOSおよびiPad OS:Microsoft Remote Desktop

マイクロソフトが提供する機能のサブセットを様々なプラットフォーム向けに実装する、マイクロソフト以外のクライアントの実装が多数ある。最も一般的なものは次のとおりである。

- FreeRDP - Apacheライセンスの下でのオープンソース
- rdesktop - Linux/UnixおよびMicrosoft Windows向け
- Remmina - Linux向け (FreeRDPがベース)
- CoRD - macOS向け (2020年4月に提供終了)
- Thincast Client - Linux、macOS、Windows向け