QA@IT
この質問・回答は、@ITの旧掲示板からインポートされたものです。

IE7でfileスキームを使用したリンクが、非ドメイン環境で開けない現象

いつもお世話になっております。

現在IE7移行に伴うトライアルを実施しておりますが、
IE7でfileスキームを使用したリンクが、非ドメイン環境で開けない現象が発生しました。
当方である程度調査した結果、IE7固有の現象と判断するに至りましたが、
これが仕様なのか、それ以外の問題なのか、また改善策などがあるのか等ご意見を頂きたく書き込みさせて頂きました。

詳細な情報を記載いたします。

-----

【環境】
 認証サーバ:  Windows Server 2003 ActiveDirectory
 WEBサーバ:  Windows Server 2003 IIS 5.0
 クライアント: Windows XP Proffessional SP2

【概要】
 (1)社内WEBサイトに、fileスキーマを使用したリンクが設定されているページがあります。
  パスは例のように日本語が混在しております。
   例:

 (2)利用ユーザーのパターンとして大きく分けて次の2つのパターンがあります。
  ①社内ネットワークに直接接続されているPC
  ②出張先や関連会社などドメイン外から接続してきているPC
  これらをテストするため、クライアントPCをWindowsドメインにログオンした状態(ドメイン環境)と、
  クライアントPCのローカルへログインした状態(非ドメイン環境)でテストを行っています。

今回現象が発生しているのは(2)②のユーザーを想定したトライアルで、
ドメイン外の環境から(1)のリンクを開こうとした際に、IE6とIE7で次の違いが確認できました。

・IE6ではダイアログが表示されログイン情報を求められる(有効な情報を入力すればファイルへのアクセスが可能)
・IE7では1〜2秒程度後に次のメッセージが表示されてしまう
 「'file://server/directory1/ディレクトリ2/ファイル.xls'が見つかりません。
  パスまたはインターネットアドレスが正しいかどうか確認してください。」
  → WindowsがADドメインにログオンしている状態では正常に開くことができます。

このファイルパスをUNCパスに置き換えて(¥¥server¥directory1¥ディレクトリ2¥ファイル.xls)
ブラウザのアドレスバーや「ファイル名を指定して実行」等で開こうとすると
通常通りログイン情報を求められるダイアログが表示されます。
ここでユーザー情報を入力し一度ファイルを開いたあとは、
(1)のページのリンクをクリックするとIE7からでもファイルを開くことが可能です。

以上のことから、
対象のファイルが保存されているサーバー(ここではserver)に対して、
セッションがある状態であればIE7からでも開くことができるが、
セッションがない状態だとダイアログすら表示されず開くことができない、
という結論に至りました。

当方、fileスキーマやUNCパスの詳細な仕様等知識がありませんのであくまで憶測ではありますが、

 fileスキーマで記述されたリンクはSMBで処理される(?)ため、
 WindowsがADドメインにログオンしている状態であれば、
 Windows統合認証により問題なくファイルを開くことができるが、
 非ドメイン環境において、IE7では認証ダイアログすら表示されない。

IE7のセキュリティの設定や詳細設定などを一通り確認し、
それらしい項目は一通りそれぞれ変更し確認しましたが現象は変わらずでした。

これが仕様なのか、IE7のバグなのか、そもそもまったく別の問題なのか、
ご意見を頂けませんでしょうか・・・。

文章が読みにくく大変恐縮ですが、よろしくお願いいたします。

質問者:Neivy

回答

本件、解決いたしましたので自己レスとなりますがログを残させていただきます。

Microsoftに問い合わせたところ、結論としてはIE7の仕様という回答がありました。
Microsoftではこれらの問合せに対して、別途WEBサーバを立ててhttpスキーマにて対応するようアナウンスしているとのことでした。

またWindows Vistaでは、「ネットワークパスワードの管理」にて該当サーバーへのログオン可能な資格情報を事前に保存する、を有効にすることで本現象が回避できる場合がある、とのことです。(弊社はWindows XPのため、この回避手段については未確認です)
[ メッセージ編集済み 編集者: Neivy 編集日時 2009-02-17 11:55 ]

投稿者:Neivy

編集 履歴 (0)
Watch

この質問への回答やコメントをメールでお知らせします。

この質問に回答する


この質問の答えをご存知ですか? ぜひ質問者に伝えてあげてください (サインインすると、回答フォームが表示されます)。

サインイン