KB968102

最近、会社のパソコンで怪奇現象が起こるようになりました。Excelでファイルを開いて、何か作業して、それから保存すると、元のファイルが消えてしまうことがあるのです。現象を調べてみると次のようなことがわかりました。

  • 先々週の月曜日から、この怪奇現象が起こるようになった
  • 消えるのは、ファイルサーバにあるExcelのファイルのみ
  • ファイルのあるディレクトリに英数字8文字(拡張子無し)の怪しげなファイルが残される

「英数字8文字(拡張子無し)の怪しげなファイル」というのは、昔からたまに目にする、Excelが作るテンポラリファイルで、べつに怪しげでも何でもないのですが、「怪奇現象」と言ってしまった手前、そういうことにしておきます。このファイルが残されるのは、経験上Excelが落ちたときなのですが、今回の「怪奇現象」では、Excelは正常で落ちていないにもかかわらず、このファイルが残されているところが謎です。

「おっかしいよなあ。なんでファイルサーバにあるExcelファイルだけがこんなことになるんだろ? そういえば、起こるようになったのは先々週の月曜日からだよなあ。ということは、その直前に何か環境を変えたとか、そういうことは……あっ」

そういえば、ファイルサーバの共有ディレクトリに対してDFSレプリケーション(DFSR)の設定をしたことを思い出しました。DFSRとは、Windows Serverに付属してくる機能で、ファイルサーバを複数台立てておいて、それらの間でリアルタイムにレプリケーションを行うものです。たとえばファイルサーバAとBに対してDFSRの設定をしておくと、ファイルサーバAのhoge.xlsというファイルを書き換えると、即座にファイルサーバBのhoge.xlsの内容が書き換わります。逆も(設定によりますが)同様です。この機能を使うと、ファイルサーバAが障害を起こしても、複製がファイルサーバBにもありますから、ユーザはそっちを見ればよいことになります。

で、いろいろと調べてみたところ、次のような文書が見つかりました。

「Windows Server 2008、または Windows Server 2003 R2 で DFSR が有効に設定されている共有フォルダに Excel ファイルを上書き保存した場合にファイルが消失することがある」

なになに?


Microsoft Windows Server 2008、または Microsoft Windows Server 2003 R2 で DFS Replication (DFSR) が有効に設定されている DFS が設定された共有フォルダに存在する Excel ファイルを開き、上書き保存を実施した場合にファイルが消失し、Excel により作成された一時ファイルが残されることがあります。

まさにこれです。現象からして間違いありません。で、解決策は……


方法 1 : 共有フォルダで DFSR を行わない

いや、そりゃダメでしょ。必要だからDFSRを使っているわけで……


方法 2 : DFSR のレプリケーション スケジュールを変更する

ユーザーが使わない夜中だけレプリケーションをしろ、って、それじゃあリアルタイムにレプリケーションできることが売りのDFSRの意味がないじゃん。ええと、ほかの解決案は……えっ? 無いの?


マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

はいはい、ちゃんと認識してください。で、修正プログラムはいつ出るのか、と当該ドキュメントを隅から隅まで読んでみたのですが……書いてません。

  • Excelマイクロソフト製のアプリケーションの中でも使用頻度はかなり高いはず
  • DFSRは共有ディレクトリに掛けるのはあたりまえ(そういう使い方するものだし)
  • なのに同時使用できない、いずれもマイクロソフト製品なのに
  • 回避策には「DFSRは使うな」しかない
  • 修正プログラムはいつ出るかわからない(もしかして、出す気が無い?)

これらのことから導き出される結論は「DFSRは使えない」(ただし、Excelのファイルを絶対に保存しないと確信できる場合を除く)