Hebikuzure's Tech Memo

2009年4月12日

サーバー上の共有フォルダで Excel ファイルを上書き保存するとファイルが失われる

Filed under: Microsoft Office — hebikuzure @ 10:44 午前

MSKB 968102
Windows Server 2008、または Windows Server 2003 R2 で DFSR が有効に設定されている共有フォルダに Excel ファイルを上書き保存した場合にファイルが消失することがある
http://support.microsoft.com/kb/968102/ja


企業環境などでサーバー上の共有フォルダに保存したファイルを直接開き、上書き保存する事はよくあるだろう。ところが Office アプリケーションの中でもよくつかわれる Excel ネットワーク共有上のファイルを取り扱っていると、うまく保存できない場合がある事が知られている。マイクロソフトでもこの現象については以前から以下のサポート技術情報で公開している。

MSKB 813973
ネットワーク ドライブにファイルを保存する際に “変更を保存できませんでした” というエラー メッセージが表示される
http://support.microsoft.com/kb/813973

この技術情報ではネットワーク ドライブ上の該当するフォルダに対して削除および変更の権限が無いと Excel ファイルが保存できない事が記されているが、同時に本当に権限が無い場合だけでなく、サードパーティのウイルス対策ソフトウェアおよびレプリケーション ソフトウェアが原因でも同様の問題が発生する事が明らかにされている。
Excel はファイルを保存する場合、技術情報 814068 (Excel のファイル保存方法について) に書かれているように一時ファイルを作成し、そのファイルに保存するデータを書き込み、元のファイルを削除して一時ファイルを本来の (Excel ファイルの) 名前に変更するという順番を踏む (Process Monitor などで調べると、実際にはもっと細かい動きがあり一時ファイルも作って削除してまた作成するような動きがあり、またも元のファイルも直接削除するのではなくいったん一時的なランダムな名前に変更されてから削除されるなどの動作が見られる)
こうした一時ファイルの作成や削除の動作がウイルス対策ソフトウェアおよびレプリケーション ソフトウェアに検出され、ファイルがスキャンやステージングのためにロックされると、技術情報 813973 に書かれさてるような保存のエラーが発生する。

こうしたトラブルでも深刻な現象が、表題の技術情報 968102 で公開されている問題だ。Windows Server 2008 や Windows Server 2003 R2 には DFS レプリケーション (DFSR) の機能があり、DFS (分散ファイルシステム) を構成しているボリューム間での自動的なファイル複製が可能になっている。ところがこの DFSR の複製処理によるファイルのロックが Excel のファイル保存の動作を妨げ、一時ファイルのみ残っている状態で処理がエラーになってしまう場合がある事がこの技術情報で示されている。

ファイルが無くなってしまうので影響が深刻であり、かつ Excel と DFSR というマイクロソフト製品同士の問題であるため、何とかしてほしいトラブルではあるが、有効な解決方法は現時点では無いようで、技術情報でも「共有フォルダで DFSR を行わない」または「レプリケーション スケジュールを変更してクライアントが Excel の保存を行わない夜間などに行う」という消極的かつ DFSR のメリットを損なうような回避策しか示されていない。

原理的に回避が難しそうな現象ではあるが最新の自社製品同士で発生する問題だけに、マイクロソフトには有効な解決方法を提供してほしいものだ。


2011/6/20 追記
http://support.microsoft.com/kb/968102/ja は今年に入って改訂されており、現象の詳細についての記述が追加されている。またこの問題が Excel 2003 までのバージョンで発生し、Excel 2007 以降のバージョンでは発生しないと記述されている。ただし DSFR を原因とする問題が発生しない場合でも、同様の現象がウィルス スキャン ソフなどにより発生する可能性はある事も追加されている。

8件のコメント »

  1. […] サーバー上の共有フォルダで Excel ファイルを上書き保存するとファイルが… […]

    ピンバック by 人気記事ベスト20 « Hebikuzure's Tech Memo — 2011年6月4日 @ 1:26 午後

  2. この問題(968102)、該当の英語版が存在しないみたいです。まさか日本語版のみの問題?

    コメント by m91 — 2011年7月15日 @ 3:09 午後

    • 日本語版だけの KB のようです。実は日本語版だけのサポート技術情報は結構な数があります。主に日本国内のユーザーからの問い合わせを元に作成する事になった技術情報の場合、ワールドワイドでの公開をユーザーが希望しない場合は色々な理由で日本語版だけの作成/公開になるようです。
      ぶっちゃけ英語版を作成すると米国本社のバジェットが関係するし、まず英語版をUSで作成して、それを日本で日本語訳してから日本語版として公開するので時間がかかる、お金もかかるという理由のようです。

      コメント by hebikuzure — 2011年7月15日 @ 4:26 午後

  3. 当方は、「Windows7+Office2010」の環境で、ファイルサーバ(WinServer2003R2)上のExcel2003以前の「.xls」ファイルを上書きすると100%壊れます。Excel2007以降の「.xlsx」ファイルでは問題ありません。サーバの納入代理店やMicrosoftの営業に問い合わせても回答できず。同一ネットワーク上の「WindowXP+Office2007」の環境のクライアントPCでは現象が発生しません。おかげで職場のPCをうかつにリプレースすることができずに困っています。

    コメント by まーすけ — 2012年1月21日 @ 10:48 午前

    • 100%の再現性という事なら、Process Monitor (http://technet.microsoft.com/ja-jp/sysinternals/bb896645) のようなツールを使って壊れるシナリオを特定する事はできると思いますよ。
      よくあるパターンはセキュリティ対策製品、自動バックアップツール、自動暗号化ツールなどの影響ですね。

      コメント by hebikuzure — 2012年1月21日 @ 5:39 午後

      • ご指南ありがとうございます。
        教えていただいたツールで確認してみようと思います。

        コメント by まーすけ — 2012年1月23日 @ 1:00 午後

  4. […] サーバー上の共有フォルダで Excel ファイルを上書き保存するとファイルが… 共有:共有TwitterメールアドレスFacebook印刷いいね:いいね最初の「いいね」をつけてみませんか。 コメントする […]

    ピンバック by Excel で削除権限のないUNC パスフォルダに保存できない « Hebikuzure's Tech Memo — 2012年7月16日 @ 11:18 午前

  5. […] ググってみると、サーバー上の共有フォルダで Excel ファイルを上書き保存するとファイルが…という記事を発見。 DFSRについての記事だが、レプリケーション系のソフトも同じ現象が出るとある。 […]

    ピンバック by Office系ファイルの上書き保存が遅くなる | a scribbled memo — 2015年2月25日 @ 3:33 午後


RSS feed for comments on this post. TrackBack URI

コメントを残す

WordPress.com で無料サイトやブログを作成.