この記事では、リモート デスクトップ Web アクセスを使用してリモート アプリケーションに接続するときに、[接続済み] アイコンが通知領域に表示されない問題の回避策について説明します。
元の KB 番号: 977507
現象
Windows Server 2008 R2 を実行しているコンピューターでリモート デスクトップ Web アクセス (RD Web Access) を使用してリモート アプリケーションに接続すると、通知領域に Connected アイコンは表示されません。
Note
リモート アプリケーションを初めて実行すると、通知領域に Connected アイコンが表示されます。
WebSSO (Web シングル サインオン) が想定どおりに動作しないため、Windows Server 2008 R2 のリモート デスクトップ Web アクセスを介して公開された RemoteApps を介して起動されたアプリケーションで資格情報の "二重プロンプト" が表示されます。
原因
この問題は、クライアント コンピューターに期限切れでない Cookie が複数存在する場合に発生します。
回避策
この問題を回避するには、Cookie を削除します。
Windows Internet Explorer 8 で Cookie を削除するには、次の手順に従います。
- [開始] をクリックし、[コントロール パネル] をクリックし、[Network とインターネット接続] をクリックし、[Internet オプション] をクリック。
- [ General ] タブの [削除] クリック。
- Cookie のみを削除するには、 Cookies チェック ボックスをオンにし、その他のチェック ボックスをすべてオフにする場合にクリックします。
- [Delete] をクリックします。 Cookie を削除する以外に、RD Web Access サーバー上のスクリプト ファイル C:\windows\Web\RDWeb\Pages\renderscripts.jsを変更する方法もあります。
スクリプト ファイル C:\windows\Web\RDWeb\Pages\renderscripts.jsを変更するには、次の手順に従います。
ローカルの Administrators グループのメンバーとしてリモート デスクトップ Web アクセス サーバーにログインします。
次の jscript ファイルを参照して右クリックし、[編集] を選択します。
C:\windows\Web\RDWeb\Pages\renderscripts.js
そのjscriptファイルで次の関数の実装を見つけます。 function getCookieContents(strNameOfCookie)
jscript ファイル内のコードを次のように変更します。
Renderscripts.js ファイル内の既存のコード:
function getCookieContents(strNameOfCookie) { var objCookie; var objCookieName; var objCookieContents = null; if ( strNameOfCookie != null && strNameOfCookie != "" && document.cookie.length > 0 ) { var objCookies = document.cookie.split(";"); for (var iIndex = 0; iIndex < objCookies.length; iIndex++) { objCookie = objCookies[iIndex]; objCookieName = objCookie.substring(0, strNameOfCookie.length); } } }
Renderscripts.js ファイルの上記のセクションを次のように変更します。
// Add a function called trim as a method of the prototype // object of the String constructor. String.prototype.trim = function() { // Use a regular expression to replace leading and trailing // spaces with the empty string return this.replace(/(^\s*)|(\s*$)/g, ""); } // End of the new-added function function getCookieContents(strNameOfCookie) { var objCookie; var objCookieName; var objCookieContents = null; if ( strNameOfCookie != null && strNameOfCookie != "" && document.cookie.length > 0 ) { var objCookies = document.cookie.split(";"); for (var iIndex = 0; iIndex < objCookies.length; iIndex++) { objCookie = objCookies[iIndex]; objCookie = objCookie.trim(); //Calling the new-added function objCookieName = objCookie.substring(0, strNameOfCookie.length); } } }
問題が解決されたかどうかの確認
問題が解決されたかどうかを確認します。 問題が解決した場合は、このセクションを完了します。 問題が解決しない場合は、サポート 変更できます。
詳細
この問題は、次の条件に該当する場合に発生する可能性があります。
- リモート デスクトップ Web アクセスは、親ドメインを持つサブドメイン内にあります。
- 親ドメインまたはその他のサブドメインは、ドメインが親ドメイン レベルに設定されている Cookie を書き込みます。 この動作により、すべてのサブドメイン間で Cookie が共有されます。
リモート デスクトップ Web アクセスが親ドメイン レベルに配置されている場合は、接続アイコンが通知領域に表示されます。 さらに、シングル サインオン (SSO) 機能、リモート アプリケーション、およびデスクトップ接続は、リモート アプリケーションに接続するときに想定どおりに動作します。
さらに、これは、Web サーバーによってクライアントに提示される Cookie に含まれる追加の Cookie 情報がある場合にも発生します。