前回まではSMBのバージョンについて、LinuxやMacとの関係も含めて詳しく見てきました。今回は「リモートデスクトッププロトコル(RDP)」のバージョンの話です。RDPのバージョンの扱いは、バージョン(ダイアレクト)をネゴシエートするSMBとはちょっと違うようです。
ちょうど1年前に本連載を始めた当初、リモートデスクトッププロトコル(Remote Desktop Protocol:RDP)とRemoteFXの話題を取り上げました。その際、Android、iOS(iPhoneおよびiPad)、Mac OS X版のMicrosoft Remote Desktopアプリがマイクロソフトから無料提供されていることを紹介しました。
1年前、まだプレビューだったWindows Phone 8.1版のMicrosoft Remote Desktopアプリも、つい最近に正式版となりました。
これらのアプリは、何度かバージョンアップを繰り返しており、改善や新機能の追加が行われています。例えば、Android版では「POODLE」として知られるSSL 3.0の脆弱(ぜいじゃく)性への対策が行われています(画面1)。また、どのプラットフォームでも、マイクロソフトがMicrosoft Azureで2014年末に正式サービスを開始した「Azure RemoteApp」のクライアント機能が追加され、利用できるようになっています(画面2)。
本稿執筆時点(2015年3月末)での各プラットフォームのアプリのバージョンは、以下の表1の通り。
プラットフォーム | 最新バージョン |
---|---|
Android版 | 8.0.12(8.1.6 Betaもあり) |
iOS版 | 8.1.6 |
Mac版 | 8.0.14 |
Windows Phone 8.1版 | 8.1.8.13 |
表1 各プラットフォームにおけるMicrosoft Remote Desktopアプリの最新バージョン |
本連載の第1回では、Android、iOS、Mac版のMicrosoft Remote Desktopアプリが「RDP 7.1互換クライアント」であることを指摘しました。その理由は、このアプリのベースとなった製品がRDP 7.1互換クライアントであったことと、マイクロソフトが公開していたこのアプリに関するFAQページにRDP 7.1互換(compatible with RDP 7.1)との記述があったからです(画面3)。
しかし、現在の上記サイトには「RDP 7.1互換」という記述はありません(画面4)。これは、RDP 8.0以降に対応したということなのでしょうか。この点に関しては、ちょっとだけ分かったことがあるのでこの後で説明します。
ちなみに、Windows Phone 8.1版はプレビュー時点で「RDP 8.1対応」と紹介されています。
"Rich Windows experience using RDP 8.1 and RemoteFX"
さて、FAQから「RDP 7.1互換」の記述が削除された理由を探るべく、何か証拠がないかどうかを、Android版Microsoft Remote Desktopアプリの最新バージョンからWindows Server 2012 R2のリモートデスクトップ(RD)セッションホストに接続していろいろと調べてみました。Windows Server 2012 R2のRDセッションホストは、RDP 8.1対応のサーバーです。
その結果、サーバー側のイベントログの「RemoteDesktopServices-RdpCoreTs」ログに、「RemoteFXアダプティブグラフィックス」による表示の最適化が行われたことを示すイベント(イベントID 166)が記録されているのを発見しました(画面5)。
RemoteFXアダプティブグラフィックスは、コンテンツの種類によって最適なエンコード方式を自動的に選択して表示を最適化する、RDP 8.0からサポートされている機能です。つまり、Android版Microsoft Remote Desktopアプリの最新バージョンは、少なくともRDP 8.0以降にしかない機能に対応していることになります。
このイベントの一つ前に記録されていたイベント(イベントID 162)も有力な情報を提供してくれました。「クライアントではバージョン0x80004のRDPグラフィックプロトコルがサポートされています」と記録されています。
Windows 8のRDP 8.0からの接続は、これと同じく「バージョン0x80004」と記録されます(画面6)。また、Windows 8.1やWindows 7のRDP 8.1クライアントからの接続は、「バージョン 0x80105」と記録されます。ちなみに、RDP 7.1以前のクライアントからの接続では、この情報を提供するイベントは記録されませんでした。
iOSやMac版のMicrosoft RemoteAppアプリについては調べていませんが、同様の仕様であると予想します。つまり、RDP 8.0の機能に対応しているということです。ただし、RDP 8.0の全ての機能に対応しているというわけではないでしょう。
実は、RDPのプロトコル仕様としては、RDPのバージョンは付加情報に過ぎず、これによってRDPのセッションで使用するRDPバージョンが選択されるというわけではないようなのです。
前回までの本連載で説明したように、SMB(Server Message Block)の場合は、ファイル共有セッションを始める前に使用するSMBバージョンのダイアレクトをクライアントとサーバー間でネゴシエートして、最新バージョンを選択します。対してRDPは、RDPバージョンではなく、サポートしているRDPの機能の情報をやりとりして使用するという仕様になっているようです。
Windows以外のプラットフォームでRDPのバージョンが明確に示されない理由は、このようなプロトコル仕様だからなのでしょう。この点については、次回にもう一度お話します。
ところで、先日、Windows 10 Technical Previewの新しいビルド「10041」の提供が始まりました。ビルド10041に含まれる、Windows標準のリモートデスクトップ接続クライアント(Mstsc.exe)のバージョン情報を見ると「リモートデスクトッププロトコル10.0がサポートされています」と書いてあります(画面7)。
また、Microsoft Azure RemoteAppのWindows版クライアント専用アプリである「Azure RemoteAppアプリ」(以前はMicrosoft RemoteAppという名前でした)もまた、つい先日、更新されました。このアプリはWindows 7 Service Pack(SP)1以降で利用できるものですが、こちらもRDP 10.0をサポートしていることになっています(画面8)。
RDP 10.0にどのような新機能が用意されるのか、まだ明らかになっていませんが、Windowsのバージョンに合わせて次のRDPも「10.0」ということです。SMBの新バージョンも「SMB 10.0」になったりして……(これは冗談です)。
岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2015)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.