「an internal error has occurred」の意味と解決法【CakePHP】

この記事にたどりついたということは『an internal error has occurred』というエラーメッセージが表示された場合に、原因はどのようなことで、対策をどのようにすればよいかを調査しているはずです。別のシステムに接続する際に、ユーザがリモートデスクトップ接続クライアントを使用している場合にかなり多くの報告があります。

リモートデスクトップ接続はビジネスや個人的な目的によって数多くのユーザが使用しているため、このエラーが発生することは精神的な苦しみの程度がはなはだしい可能性があります。ただし、この記事を読むことで問題を修正できますので心配しないでください。

「an internal error has occurred」の意味

an internal error has occurred
『an internal error has occurred』とは、何等かのエラーがサーバ側において発生したため、リモートからシステムに対して接続できなく場合に表示されるエラーメッセージです。具体的にエラーが起こる原因の根幹となる、最も基本的な部分のことが明確ではないために複数の原因が考えられます。

「an internal error has occurred.」の翻訳

『an internal error occurred』を構成している単語を分離した後に日本語へ翻訳すると、

・internal
内部、社内、内蔵、内、内的
・error occurred
エラーが発生した、エラーが起こった、エラーが起きた、エラーの発生した

となるため、『内部エラーが発生しました』もしくは『内部エラーが発生した』と翻訳できます。

インターナルエラーとは

インターナルエラーとは、サーバ側の処理系内部で発生したエラーのことを指しており、アプリケーションの動作において何かしらの問題が発生している状態のこととなります。プログラム自体へのアクセスは行えているが、クライアント側で実行ができない(処理が完了しない)場合に発生するエラーですが、具体的にどのような部分で問題が発生しているかまでをこのメッセージだけで特定することはが難しいことです。

「an internal error has occurred」の原因

このエラーメッセージは突然表示されるため、具体的な原因は不明となってしまいますが、次のいずれかの原因でエラーが発生している可能性があります。

原因1.リモートデスクトップ接続の設定

通信量ではなく他の原因によって応答速度が悪化している場合が考えられます。具体的には、ローカルPCあるいはリモートPCの過負荷あるいは故障、マルウェア感染などによって性能が下がっている可能性があります。同時に複数のクライアントから接続できるサーバの場合、同時接続数が多すぎて応答速度が悪化することもあります。

また、リモートPC側で上記のような通信量を減らす設定が強制されている場合もよくあります。この場合はリモートデスクトップ接続アプリ側でいくら設定を変更しても、現時点でリモートPCとの接続へ現実には反映が完了していないため、設定を別のものに変えたことによる効果は得られません。そのためリモートデスクトップ接続アプリ側で設定を別のものに変えながら、リモートPCへ接続して現実に応答速度が改善されないようであれば、通信量を減らす設定以外の原因も探るべきです。

原因2.RDPセキュリティ

リモートデスクトップ接続の際にサーバ側の自己署名証明書に対してクライアント側が発行されている状況や効果が失われていないかの確認を実行することによって、インターネット上へ正しいと判断に必須となる証明書機関のリストを自分の所有とする動作が発生するため、『リモート接続を保護しています』という画面が表示され時間を要する事象が発生します。

インターネットに接続できる場合はすぐに結果が表示されるため、『リモート接続を保護しています』が画面に表示される時間が少なくなります。逆にインターネットに接続できない環境ですと、明確な目的もなく複数の場所へそれまでアクセスし続けていたものを途中で終わりにするまでに時間がかかり遅くなってしまいます。

原因3.コンピューターのドメイン

エラーが表示される可能性があるもう1つの原因としてはシステムが接続しているドメインを挙げることができます。ドメインに新たに加わっているコンピュータにドメイン・ユーザ・アカウントでログオンすると、同一のドメインのサーバには再度ユーザ・アカウントとパスワード情報を加えることなく接続できますが、実際には、異なるドメインに所属するサーバやワークグループ構成のサーバに接続しようとすると、ログオン中のユーザ・アカウントでの認証に失敗したということが理由です。

「an internal error has occurred」の回避方法

ここで、以下に示す対処法を適用する前に、使用しているアカウントが管理者であることを確認してください。また、問題をすばやく切り分けることができるように、提供している対処法と同じ順序で特定の問題を解決していくことをおすすめします。

リモートデスクトップ接続設定を変更する

まず、RDP設定を少し変更して問題を特定します。一部のユーザにおいては、[接続が切断された場合に再接続する]チェックボックスをオンにすると、問題が解決したと報告しています。これを行うには、次の手順に従います。

1.[スタート]メニューに移動し、[リモートデスクトップ接続]を検索して開きます。
リモートデスクトップ接続

2.[オプションの表示]をクリックして、すべての設定を表示します。
3.[エクスペリエンス]タブに切り替えて、[接続が損なわれた場合に再接続する]チェックボックスがオンになっていることを確認します。
接続が損なわれた場合に再接続する

4.もう一度接続してみてください。

ドメインへの再参加

システムを接続しているドメインが原因で、エラーメッセージが生成されることがあります。このような場合、ドメインを削除してから再度参加すると、問題が解決します。方法は次のとおりです。

1.「Windows」+「 I」を押下して、設定画面を開きます。
2.[アカウント]に移動し、[職場または学校へのアクセス]タブに切り替えます。
3.システムを接続しているドメインを選択し、[切断]をクリックします。
4.確認を求められたら、[はい]をクリックします。
5.システムを切断し、プロンプトに従ってコンピュータを再起動します。
6.システムを再起動したら、必要に応じてドメインに再度参加できます。
7.RDPをもう一度使用してみてください。

MTU値の変更

このエラーを修正する別の方法は、MTU値を変更することです。最大伝送ユニットは、ネットワークで送信できるパケットの最大サイズとなります。MTU値を削除することでエラーの修正に役立ちます。方法は次のとおりです。

1.MTU値を変更するには、TCPオプティマイザーと呼ばれるツールをダウンロードする必要があります。
2.ダウンロードしたら、管理者としてTCPOptimizerを開きます。
3.下部で、[設定の選択]の前にある[カスタム]を選択します。
4.MTU値を1458に変更します。
5.[変更の適用]をクリックして、プログラムを終了します。
6.問題が解決するかどうかを確認します。

グループポリシーエディターでのRDPのセキュリティの変更

場合によっては、WindowsグループポリシーのRDPセキュリティレイヤーが原因でエラーが発生することがあります。このような場合は、RDPセキュリティレイヤーを使用するように強制する必要があります。方法は次のとおりです。

1.[スタート]メニューに移動し、[ローカルグループポリシー]を検索して、[グループポリシーの編集]を開きます。
2.次のディレクトリに移動します。
コンピューターの構成>管理用テンプレート> Windowsコンポーネント>リモートデスクトップサービス>リモートデスクトップセッションホスト>セキュリティ
3.右側で、[リモート(RDP)接続に特定のセキュリティレイヤーの使用を要求する]を見つけ、ダブルクリックして編集します。
4.「未構成」に設定されている場合は、「有効」を選択し、「セキュリティレイヤー」の前で「RDP」を選択します。
5.[適用]をクリックして、[ OK]をクリックします。
6.システムを再起動して、変更を有効にします。
7.もう一度接続してみてください。

リモートデスクトップサービスの再起動

場合によっては、リモートデスクトップサービスを再起動するとうまくいくことがあるため、手動で再起動する手順は次のとおりです。

1.「Windows」+「R」を押下します。
2.画面に実行ダイアログボックスが表示されたら、「services.msc」と入力して、[OK]をクリックします。
3.「リモート デスクトップ サービス」をダブルクリックし、「停止」をクリックします。
4.5秒以上待ってから「スタート」をクリックしてください。
5.問題が解決しないかどうかを確認してください。

VPN接続を無効にする

コンピュータがプロキシまたはVPN接続を使用するように構成されている可能性があります。これにより、インターネット接続が別のサーバを介してルーティングされ、接続を適切に確立できなくなる可能性があります。したがって、Internet Explorerのプロキシ設定を無効にします。また、コンピューターで実行されているVPNをすべて無効にする必要があります。

1.「Windows」+「R」を押下します。
2.画面に実行ダイアログボックスが表示されたら、「MSConfig」と入力して、[OK]をクリックします。
3.システム構成ウィンドウからブートオプションを選択し、「セーフブート」オプションをチェックします。
4.[適用]をクリックして、[OK]を押します。
セーフブート

5.PCをセーフモードで再起動します。
6.もう一度、同じ「Windows」+「R」キーを押下して、実行ダイアログボックスに「inetcpl.cpl」と入力し、[OK]をクリックします。
7.インターネットのプロパティダイアログボックスが画面に表示されたら、そこから[接続]タブを選択します。
8.[ LANにプロキシサーバを使用する]チェックボックスをオフにして、[OK]をクリックします。
LANにプロキシサーバを使用する

ここでMSConfigを再度開き、今度はセーフブートオプションのチェックを外して変更を保存し、コンピュータを再起動します。
エラーメッセージが続くかどうかを確認します。

リモート接続を許可する

一部のシステム構成では、RDPの使用中にこのエラーが表示されるため、コンピューターでリモート接続が許可されない可能性があります。したがって、このステップでは、コントロールパネルからこの設定を再構成し、そうすることでコンピューターでこの問題が修正されるかどうかを確認します。

1.コントロールパネルで、[システムとセキュリティ]オプションをクリックし、[システム]ボタンを選択します。
システムとセキュリティ

2.システム設定で、左側のペインから「システムの詳細設定」をクリックします。
3.システムの詳細設定で、[リモート]タブをクリックし、[このコンピューターへのリモートアシスタンス接続を許可する]オプションがオンになっていることを確認します。
4.それに加えて、その下の「このコンピュータへのリモート接続を許可する」タブもチェックされていることを確認してください。
5.「適用」をクリックして変更を保存し、「OK」をクリックしてウィンドウを終了します。
6.そうすることで、コンピューターでこの問題が修正されるかどうかを確認してください。

サービスの起動を変更する

リモートデスクトップサービスが、自動的に起動できないように構成されている可能性があります。したがって、このステップでは、この構成を変更し、サービスを自動的に開始できるようにします。これを行うには、以下のガイドに従ってください。

1.「Windows」+「R」を押下します。
2.画面に実行ダイアログボックスが表示されたら、「Services.msc」と入力して、[OK]をクリックします。
3.サービス管理ウィンドウで、[リモートデスクトップサービス]オプションをダブルクリックしてから、[停止]ボタンをクリックします。
4.「スタートアップタイプ」オプションをクリックし、「自動」オプションを選択します。
5.このウィンドウを閉じて、デスクトップに戻ります。
6.その後、コンピュータを再起動し、問題が解決するかどうかを確認します。

ビットマップのキャッシュを保持する

この問題が発生するもう1つの考えられる理由は、「永続的なビットマップキャッシュ」機能がRDP設定から無効になっていることです。したがって、このステップでは、リモートデスクトップ接続アプリを起動し、エクスペリエンスパネルからこの設定を変更します。これを行うには、以下のガイドに従ってください。

1.[スタート]メニューに移動し、[リモートデスクトップ接続]を検索して開きます。
2.[オプションの表示]をクリックして、すべての設定を表示します。
3.[エクスペリエンス]タブに切り替えて、[ビットマップのキャッシュを保持]チェックボックスがオンになっていることを確認します。
4.リモートデスクトップ接続を確立してから、問題が引き続き発生するかどうかを確認してください。

コンピューターで静的IPを無効にする

静的IPを使用するようにネットワークアダプターを構成していて、リモートデスクトップ接続と正しく連携していないために、この問題がコンピューターで発生している可能性があります。したがって、この手順では、ネットワーク構成設定を使用してコンピューターの静的IPを無効にし、それによって問題が修正されるかどうかを確認します。

1.「Windows」+「R」を押下します。
2.画面に実行ダイアログボックスが表示されたら、「ncpa.cpl」と入力して、[OK]をクリックします。
3.ネットワーク構成パネルで、ネットワークアダプタを右クリックし、[プロパティ]を選択します。
4.「インターネットプロトコルバージョン 4(TCP / IPV4)」オプションをダブルクリックし、「一般」タブをクリックします。
5.「IPアドレスを自動的に取得する」オプションをチェックして、変更を保存します。
IPアドレスを自動的に取得する

「OK」をクリックしてウィンドウを終了し、問題が引き続き発生するかどうかを確認します。

まとめ

リモートデスクトップにアクセスできない問題が頻繁に起こっている時は、パソコンやブラウザの設定に問題がある可能性が高くなりますので、今回解説をした対処法で問題を解決できるかどうかを試してみてください。

・リモートデスクトップ接続設定を変更する
・ドメインに再参加する
・MTU値の変更する
・グループポリシーエディターでRDPのセキュリティを変更する
・リモートデスクトップサービスを再起動する
・VPN接続を無効にする
・リモート接続を許可する
・サービスの起動を変更する
・ビットマップのキャッシュを保持する
・コンピューターで静的IPを無効にする

『an internal error has occurred』はかなり難しいエラーです。クライアント側が問題となっていることを理解しておくことが大切です。場合によっては、特定のケースに注意を払って根本的な原因を見つけ出して、適切な解決策を適用していく必要性があります。トラブルシューティングすることは簡単なことではありませんが、少なくともそれらの問題を素早く解決することについて役に立てれば幸いです。