このトピックでは、次の問題を解決する方法について説明します。エラーメッセージ "プロトコルエラーのため、このセッションは切断されます。 リモートデスクトップを使用してWindows Elastic Compute Service (ECS) インスタンスに接続すると、リモートコンピューターに再度接続してみてください。
問題の説明
Windowsインスタンスに接続すると、プロトコルエラーが表示され、エラーメッセージが表示されます。
原因
この問題は、次のようなさまざまな理由で発生する可能性があります。
インスタンスのリモートデスクトップセッションの設定が正しくありません。 この場合、インスタンスに接続するときにプロトコルエラーが表示されます。 この問題を解決するには、「解決策1: インスタンスのリモートデスクトップセッション設定の変更」セクションで説明されている操作を実行します。
リモートデスクトップ接続に使用されるポートは、別のアプリケーションによって占有されています。 デフォルトでは、ポート3389はWindowsのリモートデスクトップ接続に使用されます。 ポートが別のアプリケーションによって占有されている場合、リモートデスクトップサービスは期待どおりに実行できません。 この問題を解決するには、「解決策2: リモートデスクトップ接続に使用されるポート番号の変更」セクションまたは「解決策3: リモートデスクトップ接続に使用されるポートを占有しているプロセスを終了する」セクションで説明されている操作を実行します。
解決策
次のいずれかのソリューションを使用して問題を解決します。 次の例では、Windows Server 2016を実行するインスタンスを使用しています。
解決策1: インスタンスのリモートデスクトップセッション設定の変更
仮想ネットワークコンピューティング (VNC) を使用してWindowsインスタンスに接続します。
詳細については、「パスワードを使用したWindowsインスタンスへの接続」をご参照ください。
アイコンを右クリックし、[実行] を選択します。 [実行] ダイアログボックスで
gpedit.msc
と入力し、ローカルグループポリシーエディタを起動します。[ローカルグループポリシーエディター] ウィンドウで、[コンピューターの構成]> [管理用テンプレート]> [Windowsコンポーネント]> [リモートデスクトップサービス]> [リモートデスクトップセッションホスト]> [セキュリティ] を選択します。
[セキュリティ] ディレクトリで、[リモート (RDP) 接続に特定のセキュリティレイヤーを使用する必要] をダブルクリックします。
表示されるダイアログボックスで、[有効] を選択し、[セキュリティレイヤー] を [RDP] に設定し、[OK] をクリックします。
次のコマンドを実行してグループポリシー設定を更新し、上記の設定を適用します。
アイコンを右クリックし、[実行] を選択します。 [実行] ダイアログボックスで
[cmd]
と入力し、コマンドプロンプトを開始します。gpupdate
コマンドを実行して、グループポリシーの設定を更新します。
インスタンスに再度接続し、問題が解決したことを確認します。
解決策2: リモートデスクトップ接続に使用するポート番号の変更
VNCを使用してWindowsインスタンスに接続します。
詳細については、「パスワードを使用したWindowsインスタンスへの接続」をご参照ください。
アイコンを右クリックし、[実行] を選択します。 [実行] ダイアログボックスで
regedit
と入力し、レジストリエディターを起動します。[レジストリエディタ] ウィンドウで、次のパスに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control \ターミナルサーバー \WinStations\RDP-Tcp
RDP-Tcpディレクトリで、PortNumberレジストリキーをダブルクリックします。
表示されるダイアログボックスで、[ベース] セクションの [10進] を選択し、[値のデータ] フィールドの値を変更します。 このフィールドは、リモートデスクトップで使用されるポートの数を指定します。
説明前の図に示すポート3389はデフォルトのポートで、参照用にのみ提供されています。 値をリモートデスクトップで使用するポートの数に変更します。
次のいずれかの方法を使用して、設定を有効にするためにインスタンスを再起動します。
方法1: ECSコンソールでWindowsインスタンスを再起動します。 詳細は、「インスタンスの再起動」をご参照ください。
方法2: インスタンスで、> > 再起動を選択します。
解決策3: リモートデスクトップ接続に使用されるポートを占有しているプロセスを終了
VNCを使用してWindowsインスタンスに接続します。
詳細については、「パスワードを使用したWindowsインスタンスへの接続」をご参照ください。
アイコンを右クリックし、[実行] を選択します。 [実行] ダイアログボックスで
[cmd]
と入力し、コマンドプロンプトを起動します。次のコマンドを実行して、リモートデスクトップ接続に使用されるポートを占有しているプロセスのIDを表示し。
netstat -ano | findstr 3389
説明この例では、デフォルトのポート3389がリモートデスクトップ接続に使用されます。 リモートデスクトップ接続に使用する実際のポート番号を指定します。
取得したプロセスID (PID) を指定して次のコマンドを実行し、リモートデスクトップ接続に使用されるポートを占有しているプロセスを表示します。
通常、リモートデスクトップ接続に使用されるポートはsvchost.exeプロセスによって占有されます。 ポートがsvchost.exe以外のプロセスによって占有されている場合、ポートをリモートデスクトップ接続に使用することはできません。
tasklist | findstr [$PID]
説明前の手順で取得したPIDを [$PID] に設定します。
次のコマンドを実行してプロセスを終了し、ポートを解放します。
重要このステップはリスクの高い操作です。 この手順を実行する前に、プロセスを終了してもインスタンスのビジネスに影響がないことを確認してください。
taskkill /f /pid [$PID]
インスタンスに再度接続し、問題が解決したことを確認します。