web-dev-qa-db-ja.com

ファイルを開いて保存しようとすると、「別のユーザーが使用中のファイル」および「アプリケーション共有違反」エラーが発生するのはなぜですか?

私たちは最近これをたくさん手に入れています。

  • Windows 2008サーバー
  • Windows 7およびVistaクライアントPC
  • Microsoft Office 2007

ユーザーがネットワークドライブ上のファイル(Word文書、Excelスプレッドシートなど)を開こうとすると、ソフトウェアは、ファイルが「別のユーザー」によってロックされていない場合でもロックされていると報告します。また、ファイルをネットワークに保存しようとすると、ランダムな「共有違反」エラーが発生します。

おそらく、ユーザーが自分のドライブにあるネットワーク以外のファイルをローカルに保存しようとすると、「共有違反のため保存できません」というメッセージが表示され、同じ問題が発生する可能性があります。

3
GollyJer

わかりました。この質問が投稿されてから潜在的な問題とテストソリューションを追跡した後、私は答えを持っています...

リアルタイムでファイルにアクセスするもの(アンチウイルス、同期、またはインデックス作成ソフトウェア)は、Microsoft Officeファイルに問題を引き起こす可能性があります。

Microsoft Officeは、保存時に一時(ファイル拡張子の有無にかかわらず)ファイルを作成します。熱狂的なリアルタイムスキャンプログラムは、これらの一時ファイルを時々見たり、内容を読み取ったりして、ファイルロックを開始します。これにより、親アプリケーションが一時ファイルを目的の形式に変換しようとすると、すぐに問題が発生します。

から MSKB:Excelがファイルを保存する方法の説明

Excelがファイルを保存するとき、Excelは次の手順に従います。

  1. Excelは、[名前を付けて保存]ダイアログボックスで指定した宛先フォルダーに、ランダムに名前が付けられた一時ファイル(ファイル名拡張子のないCedd4100など)を作成します。ブック全体が一時ファイルに書き込まれます。
  2. 変更が既存のファイルに保存されている場合、Excelは元のファイルを削除します。
  3. Excelは一時ファイルの名前を変更します。 Excelは、[名前を付けて保存]ダイアログボックスで指定したファイル名(Book1.xlsなど)を一時ファイルに付けます。

From MSKB:Wordが一時ファイルを作成する方法の説明

編集されたファイルを保存するために使用されるスキームの簡略化されたビュー

一時ファイルを作成
一時ファイルを書き込みます
元のファイルを削除
一時ファイルをターゲット名に移動

Wordは、一時ファイルを保存されたファイルと同じディレクトリに配置することで、パフォーマンスを大幅に向上させます。 Wordが一時ファイルを別の場所に配置した場合は、MS-DOSのCOPYコマンドを使用して、一時ファイルを他のディレクトリから保存された場所に移動する必要があります。保存されたドキュメントファイルと同じディレクトリに一時ファイルを残すことにより、WordはMS-DOS MOVEコマンドを使用して、一時ファイルを保存されたドキュメントとしてすばやく指定できます。


ほとんどのav、インデックス作成、同期ソフトウェアは一時ファイルを正しく処理します。一部はしません。また、同じフォルダーを監視する場合、一部は単独で正常に動作しますが、一緒に動作することはできません。環境で問題を引き起こしているプログラムを特定するのは、あなた次第です。うまくいけば、この答えは正しい方向に導く光を与えます。

アップデート:マイクロソフトは、この問題に対処するためのいくつかのホットフィックスをリリースしました。
Office 2007 Hotfix
Excel 2007 Hotfix
MSからホットフィックスを要求する代わりに、 The Hotfix Share でそれらを検索します。

参考:どちらも問題を完全に解決するわけではありませんが、「共有違反」の頻度を大幅に減らします。

7
GollyJer

Windows Vistaを使用して気付いたのは、ランダムにファイルを「ロック」することです。

nlocker を使用して、ファイルがロックされている場所を表示し、ファイルのロックを解除できるようにします。

2
JFV

最初にアプリケーションを閉じずに、他のユーザーが何らかの形で共有から切断している可能性はありますか?つまり、単にスタンバイ用の蓋を閉じて家に帰るラップトップユーザーですか?おそらく他のネットワーク接続の問題ですか?

共有ドライブでロックファイルを探します。通常、チルダで始まります。たとえば、document.docxは、〜$ document.docxと同じディレクトリにロックファイルを持ちます。これは隠しファイルであるため、エクスプローラで[隠しファイルとフォルダを表示]を有効にして表示する必要があります。

アプリケーションがこのファイルを見ると、実際に付与されている権限に関係なく、ロックファイルが生成されなかったためにファイルがロックされていることがわかります。アプリケーションが正しく閉じなかった場合、またはスタンバイ状態になったか、ネットワークから切断されたために強制的に切断された場合、そのロックファイルは適切に削除されません。

ちょっとした考え...

イェス

1
Jes

Windowsエクスプローラーの下部に表示される詳細ウィンドウをオフにします。に行く Organize -> Layout -> Details Pane。これで最初の問題が修正されます。

消す Show pop-up description for folder and desktop items クリック Tools -> Folder Options。開いたボックスで、[表示]タブをクリックします。リストを下にスクロールしてShow pop-up description for folder and desktop items、チェックボックスをオフにして、[OK]をクリックします。これは2番目の問題を修正します。

プレビューウィンドウをオフにします。に行く Organize -> Layout -> Preview Pane。これにより、番号3が修正されます。

1
mtheg

Microsoft Officeアプリケーションは、Excelの一般タブの下のオプションのフィールド、Wordのユーザー情報タブなどからユーザー名を取得します。

クライアントをチェックして、タブのフィールドの内容を確認します。

0
Mike

エラーは、このユーザーがファイルを開こうとしたときに、他のユーザーがファイルをロックしたことを示しています。ロックが存在する場合、このユーザーの読み取り/書き込みアクセス制御は重要ではありません。

考えられる理由、

  • ファイルは書き込みアクセスと共有されている場所に保存されていますか?
  • ファイルへの以前のアクセスは、アプリケーションのクラッシュで終了しましたか?

MS Officeアプリケーションは通常、ファイルを書き込みモードで開きます。誰かがそれを開いた場合、またはこのファイルを開いたままアプリケーションが最後にクラッシュした場合、このエラーが発生する可能性があります。

もう1つの小さな観察:開いているがまだ編集されていないdoc/xlsファイルは、実際にはタイムスタンプが開かれたときのタイムスタンプに変更されています(エクスプローラーに切り替えてそのリストを表示した場合)。編集/保存せずにファイルを閉じると、これは古いタイムスタンプに復元されます。これは、ファイルが書き込みモードで開かれているためです。

0
nik

また、そのフォルダにファイルを作成できるかどうかも確認してください。プログラムは、保持している〜$ document.docx(またはその他)の強制によって書き込みが許可されているかどうかを通知します。そのファイルを作成できない場合、または別のプログラムがそのハンドルを持っている場合は、読み取り専用であると見なします。

0
Shial