С момента появления Windows 7 у нас возникла странная проблема с заблокированными файлами.
У нас есть программа VB6, хранящаяся на сервере. Клиенты открывают программу из общего ресурса и работают с ней весь день. Когда у нас были обновления, мы просто переименовали файл и скопировали новый. У нас это работает более 10 лет с NT, W2K и XP. С момента появления Win 7 это больше не работает.
Если я открываю «Управление компьютером» на сервере и смотрю на открытые файлы, все они находятся в «открытом режиме» для чтения. Если я использую Гиену, она выглядит немного иначе. Клиенты XP находятся в «открытом режиме» Execute, а клиенты Win 7 - в «открытом режиме» Read. Если я попытаюсь переименовать файл, я получаю НАРУШЕНИЕ ОБЩЕНИЯ:
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
Если я разорву соединения Win 7, оставив соединения XP, я могу переименовать файл.
Вот сторона сервера: Windows Server 2003 R2 x64 Share Permissions - это чтение / запись. NTFS - это List / Read / Execute.
Любая помощь будет принята с благодарностью.
Спасибо.
Это известная проблема с подсистемой буферизации перенаправленных драйверов в Windows 7/2008 R2:
Вы не можете переименовать приложение в общей папке в Windows 7 или Windows Server 2008 R2, если приложение запускается одним или несколькими пользователями.
http://support.microsoft.com/kb/2622136
"Рассмотрим следующий сценарий:
Приложение в общей папке запускается одним или несколькими пользователями.
Примечание. При запуске приложение открывает дескриптор самого себя. Вы пытаетесь переименовать приложение на компьютере под управлением Windows 7 или Windows Server 2008 R2.
«В этом случае вы не можете переименовать приложение. Кроме того, появляется следующее сообщение об ошибке:
Файл используется другим процессом.
Ноты
«Эта проблема возникает из-за изменений, внесенных в подсистему буферизации перенаправленного диска (Rdbss.sys) в отношении использования новых нестандартных блокировок и способа обработки ссылок на удаленные исполняемые файлы».
Если вы предпочитаете более новую версию rdbss.sys, она доступна в этом исправлении: