Данная статья посвящена личному опыту по решению проблемы с невозможностью одновременного редактирования книги Excel с включенным общим доступом. При открытии файла по сети пользователи получали предупреждение Редактирование запрещено пользователем ‘другой пользователь’.
Заблокирован файл Excel: решение
В моем окружении (Клиентские ПК – Windows 7, Office 2010; Серверы – Windows 2008 R2) проблема возникла после переноса файлового ресурса с удаленной площадки в центральный офис. Естественно первым делом были проверены все права доступа в NTFS и на Share, но с этим все было в порядке.
Хочу напомнить механизм, который Excel использует для открытия и сохранения файлов. При открытии файла в Excel создаётся временный файл, с которым пользователь и работает. При сохранении файла оригинальный документ удаляется, а временному файлу присваивается имя оригинального документа.
Также были проведены эксперименты, исключающие версии о блокировке файла антивирусным ПО, службой репликации DFSR и заданиями robocopy.exe.
Поискав по Интернету, наткнулся на упоминания на форумах о возможной блокировке файлов из-за включенных в проводнике Windows области сведений и области предварительного просмотра,
а также из-за всплывающих подсказок для папок и элементов рабочего стола (Мой компьютер, Упорядочить, Параметры папок и поиска, Вид):
Настройку проводника большому количеству пользователей самое простое сделать через групповые политики (Group Policy).
Пример отчета групповой политики по настройке области сведений и области предварительного просмотра:
Как вы видите, используются административные шаблоны групповых политик, поэтому сложностей с настройкой возникнуть не должно.
Чуть трудней будет со всплывающими подсказками, так как стандартной настройки в административных шаблонах нет. Нам необходимо добавить следующую информацию в реестр:
Key: KEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
Name: ShowInfoTip
Type: REG_DWORD
Value: 0
Самое простое использовать для этих целей так называемые Group Policy Preferences.
Пример отчета по настройке реестра через Preferences:
Результат экспериментов с настройками проводника оказался отрицательным – файл Excel все равно периодически был занят другим пользователем.
Поддержка Microsoft рекомендовала установить обновления из замечательной статьи из блога команды поддержки Excel, а также добавить следующие значения в реестр на клиентах:
Key: HKEY_CLASSES_ROOT\CLSID\{993BE281-6695-4BA5-8A2A-7AACBFAAB69E}
Name: EnableShareDenyNone
Type: REG_DWORD
Value: 1
Key: HKEY_CLASSES_ROOT\CLSID\{993BE281-6695-4BA5-8A2A-7AACBFAAB69E}
Name: NoOpLock
Type: REG_DWORD
Value: 1
Что и было сделано – установлены обновления для Windows на серверах и клиентах, и обновлен Office на клиентах. Значения в реестр были добавлены через уже знакомые нам Group Policy Preferences.
И это сработало!
Подробнее про обновления.
В моем случае были установлены следующие номера KB Microsoft:
На Windows Server 2008 R2 и Windows 7:
KB3037941
KB3023557
KB2870437
KB2974617
KB3004383
KB2639043
KB2831206
KB2896146
KB3125574
KB3172605
KB3179573
На Windows Server 2008 R2:
KB2761922
KB3177186
KB3125574
На Windows 7:
KB3175024
KB3075623
KB3044428
KB3020369
KB3015999
KB2967567
На Office 2010 был установлен SP2.
Заключение
Хотя я изначально скептически относился к тому, что это можно решить установкой патчей, но в результате вместе с настройками реестра нам удалось устранить эту проблему, и мы смогли перенести общую папку на другой сервер.
При работе над проблемой также использовались следующие утилиты:
- Process Explorer
- ProcMon
- Network Monitor
В заключение хочу сказать, что продуктовая группа не рекомендует уже использование Shared Workbook в Excel для совместной работы, так как в этом продукте существует ряд принципиальных проблем, которые невозможно решить (в частности, существует проблема с задержкой открытия файлов, расположенных в папке с общим доступом). По этой причине, в таких случаях Microsoft настоятельно рекомендует переходить на SharePoint для совместной работы с файлами.
Спасибо, за статью. Мне тоже помогло.
если знаете пользователя, завершите сессии все его на ADшке))
Удалить временный файл.