web-dev-qa-db-ja.com

Windows7クライアントはファイルをロックしています

Windows 7の導入以来、ロックされたファイルに奇妙な問題があります。

サーバーにVB6プログラムが保存されています。クライアントは共有からプログラムを開き、一日中それを操作します。更新があったときは、ファイルの名前を変更し、新しいファイルをコピーしただけです。これは、NT、W2K、およびXPで10年以上にわたって機能してきました。 Win 7の導入以降、これは機能しなくなりました。

サーバーでComputerManagementを開き、開いているファイルを見ると、すべて「オープンモード」の読み取りになっています。ハイエナを使うと少し違って見えます。 XPクライアントは「オープンモード」で実行され、Win 7クライアントは「オープンモード」で読み取られます。ファイルの名前を変更しようとすると、共有違反が発生します。

Desired Access:  Read Attributes, Delete, Synchronize 
Disposition:     Open 
Options:         Complete If Oplocked, Open Reparse Point 
Attributes:      n/a 
ShareMode:       Read, Write, Delete 
AllocationSize:  n/a 
Impersonating:   xxx\yyyyyy

XP接続を残して、Win 7接続を終了すると、ファイルの名前を変更できます。

サーバー側は次のとおりです。WindowsServer2003R2x64の共有アクセス許可は読み取り/書き込みですNTFSアクセス許可はリスト/読み取り/実行です

どんな助けでも大歓迎です。

ありがとう。

1
Daro

これは、Windows 7/2008R2のリダイレクトされたドライバーバッファリングサブシステムの既知の問題です。

アプリケーションが1人以上のユーザーによって実行されている場合、Windows7またはWindowsServer 2008 R2の共有フォルダー内のアプリケーションの名前を変更することはできません
http://support.Microsoft.com/kb/2622136

「次のシナリオを検討してください。

  • 共有フォルダー内のアプリケーションは、1人以上のユーザーによって実行されています。

  • 注アプリケーションは、実行中にそれ自体へのハンドルを開きます。 Windows7またはWindowsServer 2008R2を実行しているコンピューターでアプリケーションの名前を変更しようとしました。

「このシナリオでは、アプリケーションの名前を変更することはできません。さらに、次のエラーメッセージが表示されます。

ファイルは別のプロセスで使用されています。

ノート

  • すべてのユーザーがアプリケーションを閉じた後、同じ操作を正常に実行できます。
  • この問題は、WindowsXPを実行しているコンピューターでは発生しません。

「この問題は、新しいoplockの使用とリモート実行可能ファイルへの参照の処理方法に関してリダイレクトドライブバッファリングサブシステム(Rdbss.sys)で行われた変更が原因で発生します。」


より新しいバージョンのrdbss.sysが必要な場合は、次の修正プログラムで利用できます。

http://support.Microsoft.com/kb/268775

0
Greg Askew