Клиенты Windows 7 блокируют файлы

С момента появления Windows 7 у нас возникла странная проблема с заблокированными файлами.

У нас есть программа VB6, хранящаяся на сервере. Клиенты открывают программу из общего ресурса и работают с ней весь день. Когда у нас были обновления, мы просто переименовывали файл и копировали новый. Это работает для нас более 10 лет с NT, W2K и XP. С введением Win 7 это больше не работает.

Если я открою Управление компьютером на сервере и посмотрю на открытые файлы, они все в "открытом режиме". Если я использую гиену, это выглядит немного иначе. Клиенты 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

Если я прерываю соединения Win 7, оставляя соединения XP, я могу переименовать файл.

Вот сторона сервера: Разрешения для общего доступа к Windows Server 2003 R2 x64: чтение / запись. Разрешения NTFS: просмотр, чтение, выполнение.

Любая помощь будет принята с благодарностью.

Благодарю.

1 ответ

Решение

Это известная проблема с подсистемой буферизации перенаправленного драйвера в Windows 7/2008 R2:

Вы не можете переименовать приложение в общей папке в Windows 7 или Windows Server 2008 R2, если приложение запускается одним или несколькими пользователями
http://support.microsoft.com/kb/2622136

"Рассмотрим следующий сценарий:

  • Приложение в общей папке запускается одним или несколькими пользователями.

  • Примечание. При запуске приложение открывает для себя дескриптор. Вы пытаетесь переименовать приложение на компьютере под управлением Windows 7 или Windows Server 2008 R2.

"В этом случае вы не можете переименовать приложение. Кроме того, вы получаете следующее сообщение об ошибке:

Файл используется другим процессом.

Заметки

  • Вы можете выполнить ту же операцию успешно после того, как все пользователи закроют приложение.
  • Эта проблема не возникает на компьютере под управлением Windows XP.

"Эта проблема возникает из-за изменений, внесенных в подсистему буферизации перенаправленного диска (Rdbss.sys) в отношении использования новых блокировок и способа обработки ссылок на удаленные исполняемые файлы".


Если вы предпочитаете более свежую версию rdbss.sys, она доступна в этом исправлении:

http://support.microsoft.com/kb/2687753

Другие вопросы по тегам