質問者
IE9でイントラネットゾーンのサイトからファイルをダウンロードできない。

質問
-
あるイントラネット上のサイトで、サーバ上のファイルをダウンロードする機能があるのですが、ダウンロードを実行した際に以下のような現象が発生します。
「~を開くか、または保存しますか?」と表示された通知バーが表示され、通知バーの「ファイルを開く」ボタンをクリックすると、「~は移動または削除された可能性があります。」と表示される。
クライアント環境は以下の通りです。OS:Windows 7 Professional (32bit版)ブラウザ:Internet Explorer9操作ユーザの権限:管理者権限
OS:Windows Vista Business Service Pack 2 (32bit版)ブラウザ:Internet Explorer9操作ユーザの権限:管理者権限
ブラウザの[インターネットオプション]-[セキュリティ]-[ローカルイントラネット]の設定は以下の通りです。サイトの定義:「イントラネットのネットワークを自動的に検出する」にチェックしており、詳細設定でURLは指定していません。セキュリティのレベル:「既定のレベル」で、カスタマイズはしていません。保護モード:「保護モードを有効にする」はチェックしていません。
ただし、上記環境の複数のクライアント端末で動作確認したところ、Windows 7、Windows Vistaともに本現象が発生しないものもありました。また、本現象が発生するクライアント端末でも必ず発生する訳ではなく、ブラウザのウィンドウ起動後1回目のダウンロードは大抵成功し、2回目以降に本現象が頻繁に発生します。また、本現象が発生するクライアント端末のブラウザの[イントラネットオプション]-[セキュリティ]-[ローカルイントラネット]で、「保護モードを有効にする」をチェックすると、本現象は発生しなくなります。
なお、インターネット上のファイルダウンロードURLをブラウザのイントラネットサイトの定義に追加し、該当URLに対してアクセスした場合にも本現象が発生することから、本現象は特定のサイトに限った問題ではなく、Windows、またはIEの設定の問題ではないかと推測しております。
実際に試してみたURLは以下の2つです。http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.ziphttp://ftp.riken.jp/net/apache/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.zip
ブラウザの[インターネットオプション]-[セキュリティ]-[ローカルイントラネット]で、「保護モードを有効にする」をチェックしなくても本現象が発生しないようにするにはどうすればよいでしょうか?
すべての返信
-
Answers の方にもコメントしましたが、こちらにも書いておきます。
再現テストして調べてみたいのですが時間がないので簡単に。
確認ですが、[開く] ではなく [保存] あるいは [名前を付けて保存] した場合、正常に保存できますか。
またテストしたファイルとして ZIP のダウンロード アドレスが書かれていますが、それ以外の種類のファイル (Office ドキュメントやプレーン テキスト、画像など) でも同じ現象が発生しますか。
おそらくファイルを開こうとしているときに、ダウンロードされた一時ファイルの場所を見失っているのではないかと推測していますが、上記は切り分けになるので確認していただければよいかと思います。
またもし理解できるようであれば、以下のツールを使って現象発生時の詳細なファイル アクセス動作を確認すると、何かわかるかもしれません。
Process Monitor
http://technet.microsoft.com/ja-jp/sysinternals/bb896645.aspx
hebikuzure -
ご返信ありがとうございます。
確認事項について返信いたします。
> 確認ですが、[開く] ではなく [保存] あるいは [名前を付けて保存] した場合、正常に保存できますか。
はい。[保存] した場合は、正常に保存できます。
> またテストしたファイルとして ZIP のダウンロード アドレスが書かれていますが、それ以外の種類のファイル (Office ドキュメントやプレーン テキスト、画像など) でも同じ現象が発生しますか。
はい。DOCファイル、TXTファイルでも同じ現象が発生することを確認しております。
> またもし理解できるようであれば、以下のツールを使って現象発生時の詳細なファイル アクセス動作を確認すると、何かわかるかもしれません。>> Process Monitor> http://technet.microsoft.com/ja-jp/sysinternals/bb896645.aspx
ありがとうございます。試してみたいと思います。
また何か分かりましたら、ご返信よろしくお願いします。 -
>上記環境の複数のクライアント端末で動作確認したところ、Windows 7、Windows Vistaともに本現象が発生しないものもありました。
>ブラウザのウィンドウ起動後1回目のダウンロードは大抵成功し、2回目以降に本現象が頻繁に発生します。
なんとなく、IE9で99%になったままの現象と似た話に見えます。
次のパッチがあたっていなければ、当ててみるとかどうでしょう。
http://support.microsoft.com/kb/2530548
~.partialというファイルがあるなら、リネームしてそのまま使ってみるとか。
(実はDLは正常に出来ていてファイル名だけの問題だったりしませんかね?)
>はい。DOCファイル、TXTファイルでも同じ現象が発生することを確認しております。
ファイルの種類を意識しない箇所で問題が発生している可能性が高そうですね。
圧縮ファイルは通常と異なる動きをすることが多い認識でしたが、それは関係がないということですね。
>結果は成功時と失敗時のファイルアクセスには全く差分はありませんでした。なんと!そうなのですね。
[開く]を選んだときに、成功する場合と失敗する場合とあるにもかかわらず、
OSから見たファイルのIOレベルでは違いがないのですね。
となると、OS以外にIEでDLしたファイルの有無を管理しているものといえば、インターネット一次キャッシュ(というよりindex.dat)を考えてしまいます。
>ダウンロードされた一時ファイルの場所を見失っているのではないかと推測していますが
確かに、いったんダウンロードしたファイルを、消して、もう一度「開く」を押すと
「~は移動または削除された可能性があります。」と表示されますよね。 -
ご返信ありがとうございます。
> 前に書いたようにファイルを開こうとしているときに、ダウンロードされた一時ファイルの場所を見失っていると思われるので、ファイルを開く側のアプリケーションの挙動も確認する方が良いでしょう。
なるほど。アプリケーションの挙動も確認してみます。
> なんとなく、IE9で99%になったままの現象と似た話に見えます。> 次のパッチがあたっていなければ、当ててみるとかどうでしょう。> http://support.microsoft.com/kb/2530548
このパッチは私も色々調べている中で気になったので確認してみたのですが、問題が発生するWindows Vista端末についてはあたっていました。Windows 7のほうは手元に問題が発生する端末がないため確認できていませんが、今度確認してみます。(諸事情により確認できるのは3週間後くらいになりますが)
> ~.partialというファイルがあるなら、リネームしてそのまま使ってみるとか。> (実はDLは正常に出来ていてファイル名だけの問題だったりしませんかね?)
この現象のことですね。
これはファイルを保存した場合の現象のようですが、当方の現象はファイルを保存せずに直接開いた場合に発生するため、.partialというファイルは確認できていません。ただ、一時キャッシュ保存先フォルダの中で.partialというファイルができていて、ファイル名が違うから開けていない?ということも考えられるでしょうか。確認してみたいと思います。
> となると、OS以外にIEでDLしたファイルの有無を管理しているものといえば、インターネット一次キャッシュ(というよりindex.dat)を考えてしまいます。
確かにキャッシュが何かおかしいのではという気はします。一時キャッシュ保存先フォルダを丸ごと消すとどうなるか試してみようと思います。(確か消すとindex.datとかは勝手に再作成されたと思うので)
また何か思い当たることがありましたら、ご返信よろしくお願いいたします。
-
再現確認を試みました。(Win7 32bit&IE9)が、前提となる>「~を開くか、または保存しますか?」と表示された通知バーが表示されの方法が分かりませんでした。「通知バー」になりません。代わりに”ダイアログ”が表示されてしまいました。(「~を開くか、または保存しますか?」の質問は同じ)これは、@hebikuzure氏のサイトにある、3つの条件が満たされているためだと思っています。そこでsetTimeout経由にしてみましたが、回避出来ませんでした。「通知バー」となる条件も探ってみましたが、分かりませんでした。ローカルイントラネットに「ダウンロード用URL」「http://ftp.riken.jp」「http://ftp.kddilabs.jp」の3つを登録し、保護モードはOFFです。再現するためのサンプルの提示は可能でしょうか?手元で確認したときのHTMLはこのレスの最後に乗せています。>操作ユーザの権限:管理者権限教えて下さい。これは、このpptの説明でのの4ページ目で言う「保護モード無効のIE」という認識でよいでしょうか?「右クリック」→「管理者として実行」ではありませんよね?(再現するマシンにおける再現方法を知りたいだけです。powerpointがあれば。)>ただ、一時キャッシュ保存先フォルダの中で.partialというファイルができていて、ファイル名が違うから開けていない?手元の環境では、”ファイル保存ダイアログ”で「開く」を選択すると、一時的に.partialというファイルが出来上がりますが、ダウンロードが完了すると消えていますよ(こちらはWin7 64bit&IE9)。ProcessMonitorに出てきていませんか?その際のログは次になりました。【ProcessMonitorのログの出方】・手元の再現しない環境における、”ダイアログ”から「開く」を押したときににどうなるかについて、1回目でも2回目でもファイルエクスプローラで開かれるファイルは「apache-tomcat-7.0.16.zip」になりました。ただし、ProcessMonitorでログを見ると、1回の「開く」クリックの動作は①ダウンロード最中は「apache-tomcat-7.0.16[1].zip」で保存されていました。②ダウンロードが完了?すると「apache-tomcat-7.0.16.zip.*.partial」というファイル名もログに出てきました。(ダウンロード後のリネーム中?)③ログの最後の方は「apache-tomcat-7.0.16.zip」というファイル名になりました。そして、実際に開くのは③のファイル名となり、②は存在していませんでした(少なくともファイルエクスプローラ上では)。この、ごちゃごちゃとしたリネーム?処理をしている最中に問題が発生している可能性もありそうですね。# しかし、ProcessMonitorの結果が同じになるのですね。。。【ダウンロードに関わるプロセスについて】>・IEのプロセスのみ表示されるよう設定>・ファイルアクセスのみ表示されるよう設定確たるわけではありませんが、とりあえずは、その設定だけでよいと思っています。
理由は、保護モードOFF時にファイル保存ダイアログから「開く」をしたときに、
・プロセスのフィルタなし
・保存ファイル名を含むファイルの部分文字列
で収集したところ、プロセスは3つ出てきました。保存するプロセスはそのタブが所属するタブプロセスのようです。(ですので、今回の話題では、ILがMidiumなタブプロセスかと思います。)その後、フレームプロセスの方もログに出てきました。(*.particalにも触っているようです)最後にExplorer.exeも出てきました(これは、おそらくファイルエクスプローラがポップアップして開くのでそれかと思います。【その他】>Windows 7のほうは手元に問題が発生する端末がないため確認できていませんが、今度確認してみます。いや、Vistaで確認済みですので、不要です(元々優先度は低いネタですし)。ゾーン関係なく保護モードOFFなら発生するんじゃないですかね?しかし、それよりもまず再現するマシンでの再現方法を知りたいのです。【ダイアログになってしまうHTML】<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>イントラネット保護モードOFFでDL不可</title> <script> function form1_submit(f){ setTimeout(function(){ f.submit(); }, 1000); return false; } </script> </head><body> <a href="http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.zip">Atag_kddilabs-apache</a><br> <a href="http://ftp.riken.jp/net/apache/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.zip">Atag_riken-apache</a><br> <hr> <form action="http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.zip" method=get onsubmit="return form1_submit(this);"> <input type=submit value="form get kddilabs-apache"> </form> </body></html>
-
ご返信ありがとうございます。
申し訳ありません。情報が不正確でした。
> >「~を開くか、または保存しますか?」と表示された通知バーが表示され
>
> の方法が分かりませんでした。「通知バー」になりません。
> 代わりに”ダイアログ”が表示されてしまいました。(「~を開くか、または保存しますか?」の質問は同じ)
すいません。以下のURLに対してアクセスした場合は、こちらの再現環境でも通知バーではなくダイアログが表示されます。
また、「~は移動または削除された可能性があります。」も通知バーではなく、ダウンロードマネージャーが出てきて、そこに表示されます。
・http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.zip
・http://ftp.riken.jp/net/apache/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.zip
通知バーが表示されるのは、元々イントラネット上にあった特定のサイトでダウンロードを行った場合だけでした。
ただ、保護モードを有効にすると問題の現象が発生しなくなるという点はどちらも同じです。
> 再現するためのサンプルの提示は可能でしょうか?手元で確認したときのHTMLはこのレスの最後に乗せています。
こちらでは、以下のサイトのCoreのzipリンクをクリックして再現させています。(zipリンクのリンク先は可変で、サイトを表示する度に変化します)
ブラウザの設定については、こちらの再現環境も提示して頂いている画像の内容と同じです。
> >操作ユーザの権限:管理者権限
> 教えて下さい。
> これは、このpptの説明でのの4ページ目で言う「保護モード無効のIE」という認識でよいでしょうか?
すいません。私の知識ではpptの内容を正確に理解できないのですが、私の書いた「操作ユーザの権限:管理者権限」の意味は、Windows上でユーザーアカウントを作成する際に「アカウントの種類」に「管理者」を選択したユーザで操作したという意味です。
> 「右クリック」→「管理者として実行」ではありませんよね?
はい。「右クリック」→「管理者として実行」ではありません。
色々と言葉足らずな点があり申し訳ありませんでした。今後はできるだけ正確な情報を記載するよう気を付けます。また、ProcessMonitorについての情報提供ありがとうございます。こちらでももう少し細かく見てみます。
ただ現在、仕事の都合でWindows 7、Vista共に再現環境が手元にない状況です。私の方での調査結果等の返信は2週間くらい後になるかと思います。
申し訳ありませんが、また何か分かりましたら情報提供よろしくお願いいたします。 -
>こちらの再現環境でも通知バーではなくダイアログが表示されます。すみません。そうだったんですね。となると環境は実現出来ているようですが、再現しませんでした。(´・ω・`)(イントラネットに、http://tomcat.apache.orgとhttp://www.meisei-u.ac.jpを設定)環境固有問題なのか、タイミング問題なのか切り分け出来ればよいのですが。。# これ以上、この問題に時間を"ここで"かけたほうがよいかは、ご確認ください。# 再現環境がしばらく使えないとのことですが。案1:一時フォルダの場所を変えても再現しますでしょうか?案2:開こうとしているファイル名は何になっていますでしょうか?それを特定するために、ProcessMonitorのフィルタオプションを「Pathを"tomcat"のcontains」にして、iexplorer.exeのプロセスフィルタは削除です。ログに差が出なかったというときのフィルタオプションがプロセスID指定なら、差が出ないかもしれません。「Pathを"tomcat"のcontains」ならどうでしょうか。その際、iexplorer.exeの最後のログに出てくるファイル名と、その次の「開く」に結び付けられた外部プログラムがアクセスしようとするファイル名が気になります。※そもそも、外部プログラム(手元ではExplorer.exe)は、実行されていますでしょうか?>ダウンロードマネージャーが出てきて、そこに表示されます。話しが少しそれますが、それ以前に、なぜダウンロードマネージャーがポップアップしてくるのかと思いました。どうやら、ダウンロードマネージャーが出てくる条件があるようで、試す限り、エラーが発生したときか、過去に発生していて、ログを消していないときではないかと思いました。参考程度に、手元で、わざと「保存」を選び正常にDLできたファイルがあるとして、そのファイルを消して、ダウンロードマネージャの対象ファイルの「ファイルを開く」を選択すると、ProcessMonitorは、2行のみ出力され、その内容というと
iexplorer.exe(フレームプロセス)のQueryOpen(GetFileAttributes)とCreateFile(DeleteFile)でした。>通知バーが表示されるのは、元々イントラネット上にあった特定のサイトでダウンロードを行った場合だけでした。私も通知バーが出せました。http://tomcat.apache.org/download-70.cgiのCoreのtar.gzをクリックです。