Windows 10 Pro/Enterprise/Educationでは「リモートデスクトップサービス」のデバイスリダイレクト機能に関して、これまでのWindowsから仕様が変更されている部分があります。筆者はこの仕様変更に関する公式な情報を確認していませんが、仕様変更の発見に至った経緯をトラブルシューティングの事例として紹介します。
2台のWindowsコンピューター間のリモートデスクトップ接続では、接続元のさまざまなデバイスを、接続先のリモートセッションにリダイレクトして使用することができます。標準でプリンターやドライブ、スマートカード、オーディオ、デジタルカメラ、メディアプレーヤーなどをリダイレクトできます。デジタルカメラやメディアプレーヤーは「PTP(Picture Transfer Protocol)」または「MTP(Media Transfer Protocol)」プロトコルに対応したもので、「その他のサポートされているプラグアンドプレイ(PnP)デバイス」と表示されます。
接続先が対応していれば、標準の方法でリダイレクトできないWebカメラやVoIPデバイス、生体認証デバイスといったUSBデバイスを、リモートセッションにリダイレクトすることも可能です。
USBデバイスのリダイレクトは「RemoteFX USBデバイスリダイレクト」という機能であり、接続先がWindows 8以降のEnterpriseエディション、Windows Server 2012以降のリモートデスクトップセッションホスト、RDP 8.0をサポートするWindows 7 Enterprise/Ultimate Service Pack(SP)1、およびRemoteFX 3Dビデオアダプターが割り当てられたRDP 7.1を使用するWindows 7 Enterprise/Ultimate SP1のVDI仮想デスクトップで利用できます。RemoteFX USBデバイスリダイレクトでリダイレクトできるデバイスは、「その他のサポートされているRemoteFX USBデバイス」と表示されます(画面1)。
Windows 10では「その他のサポートされているプラグアンドプレイ(PnP)デバイス」と「その他のサポートされているRemoteFX USBデバイス」は、既定でリダイレクトが許可されていません。Windows 8.1およびWindows Server 2012 R2以前は、既定でリダイレクトが許可されていました。
この既定の仕様がWindows 10では全く逆に変更されたため、従来と同じ方法で「その他のサポートされているプラグアンドプレイ(PnP)デバイス」や「その他のサポートされているRemoteFX USBデバイス」のデバイスをリダイレクトしようとしても失敗してしまいます。
以前のWindowsと同じように、接続先のWindows 10に対して「その他のサポートされているプラグアンドプレイ(PnP)デバイス」のリダイレクトを許可したい場合、また、接続先のWindows 10 Enterpriseに対して「その他のサポートされているRemoteFX USBデバイス」を許可したい場合は、ローカルコンピューターポリシーまたはグループポリシーで、接続先のコンピューターの以下のポリシーを「無効」に設定し、コンピューターを再起動する必要があります(画面2)。
・コンピューターの構成¥管理用テンプレート¥Windowsコンポーネント¥リモートデスクトップセッションホスト¥デバイスとリソースのリダイレクト¥サポートされているプラグアンドプレイデバイスのリダイレクトを許可しない
今回のテーマは、Windows 10の仕様変更の話ではありません。従来の動作に戻すポリシーをどのようにして見つけたのか、その手順がトラブルシューティングの良い事例になると思ったので、順を追って説明します。Windows 10のこの仕様変更については、筆者の個人ブログにまとめてありますので、興味のある方はそちらをご覧ください。
Windowsで何かトラブルが発生した際に、真っ先に確認したいのが「イベントログ」です。イベントビューアーを開いて、「アプリケーション」ログや「システム」ログに異常がないかどうかを確認するのはもちろん、「アプリケーションとサービスログ」のアプリケーションやサービスごとのログも確認しましょう。
「その他のサポートされているプラグアンドプレイ(PnP)デバイス」のリダイレクトの成功と失敗のイベントは、接続先のコンピューターの「Microsoft¥Windows¥TerminalServices-PnPDevices」の「Operational」と「Admin」に記録されます。「その他のサポートされているRemoteFX USBデバイス」の成功と失敗のイベントは、接続先のコンピューターの「Microsoft¥Windows¥TerminalServices-USBDevices」の「Operational」と「Admin」に記録されます。
PnPまたはUSBデバイスのリダイレクトに失敗した接続先のWindows 10コンピューターでは、イベントID36の警告イベント「サポートされた追加のデバイスのリダイレクトは、ポリシーによって無効にされています。」が記録されていました(画面3)。
Windowsのエラーメッセージは実際の状況を示しておらず、役に立たないものが多いと考える人もいるようです。例えば、エラー内容が「この操作は中止されました。システム管理者に問い合わせてください」ならそうでしょう。
しかし、今回のイベントログに記録されたエラーのようなものは、まず、その表現通りに受け取るべきです。つまり、今回の問題は「ポリシーによって無効化されている」ことが原因と考えられます。しかし、筆者は問題の発生しているWindows 10に対して、ローカルポリシーやグループポリシーを何も構成していません。
Windowsのポリシー設定は、レジストリの「HKEY_LOCAL_MACHINE¥SOFTWARE¥Policies」や「HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Policies」、あるいは「HKEY_CURRENT_USER¥SOFTWARE¥Policies」といった場所に書き込まれ、既定のローカル設定よりも優先されます。
そこで、PnPやUSBデバイスのリダイレクトの際、これらの場所にあるどのポリシー設定を参照しているのかを、Windows Sysinternalsの「Process Monitor(Procmon)」を使用して追跡してみました。Procmonは、Windowsで行われているファイル、レジストリ、ネットワークへのアクセス、プロセスとスレッドの処理情報をリアルタイムにキャプチャして、表示するツールです。
Procmonをリモートデスクトップ接続のセッション内で開始し、いったんセッションを切断して、PnPデバイスやUSBデバイスをリダイレクトするように指定してから再接続します。接続が完了したらProcmonのキャプチャを停止して、「Policies」を含むレジストリアクセスを探します。Procmonは膨大な情報を記録しますが、フィルター機能を利用することで、ある程度絞り込むことができます(画面4)。
どうやら、探しているレジストリ値は「HKEY_LOCAL_MACHINE¥SOFTWARE¥Policies¥Microsoft¥Windows NT¥Terminal Services¥fDisablePNPRedir」のようなのですが、結果が「NAME NOT FOUND」なので、Windows 10にこのポリシー設定は適用されていません。どういうことでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.