За последние несколько недель компания, в которой я работаю, имела проблемы на своем сервере, когда файл чем-то блокировался и не мог быть разблокирован. Эти файлы почти всегда являются файлами, доступ к которым активно осуществляется через общий доступ к файлам Windows. Я скачал популярные Unlocker программа, но она не может найти блокировку файла. openfiles.exe (или Системные инструменты> Общие папки> Открытые файлы) не показывает, что файл открыт кем-либо. Тем не менее, я не могу открыть его ни в чем, включая блокнот - система выдает мне ошибку отказа в разрешении даже при доступе к файлу в качестве локального системного администратора. Проблема всегда уходит при перезагрузке сервера.
Что еще хуже, я вообще не смог воспроизвести эту ошибку. Его частота варьируется от дня до недели. Когда проблема действительно возникает, у меня очень мало времени для ее изучения, потому что в девяти случаях из десяти проблема делает наши производственные системы полностью нефункциональными, а руководство требует перезагрузки сервера.
Проблема также не ограничивается одним приложением. Большая часть трафика обмена файлами приходится на наше программное обеспечение для управления производством, Globalshop, поэтому проблема обычно проявляется где-то там, однако самое последнее возникновение было в базе данных Microsoft Access, полностью отделенной от чего-либо Globalshop.
Кто-нибудь видел что-нибудь подобное? Есть идеи, что могло вызвать это? Дайте мне знать, если вам понадобится дополнительная информация.
В настоящее время мы работаем под управлением Windows Server 2003 Standard Edition.
[править] Я пробовал проверять разрешения, но мне также запрещен доступ к ним в нарушающем файле. Я не могу открыть, переместить, удалить, переименовать или даже скопировать файл.
[edit2] Мне удалось изолировать два файла с нарушением правил. До тех пор, пока не возникнут другие проблемы, мешающие производству, я получил разрешение от руководства держать сервер в сети до конца дня для их тестирования.
[edit3] Бреттски в комментариях посоветовал мне посмотреть права доступа к файлам. Я сделал снимок экрана окна свойств одного из проблемных файлов. Как видите, разрешений нет. http://i43.tinypic.com/24xgpe8.png (Это открывается как системный администратор с полными правами доступа.)
Возьмите Handle.exe (http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx) и на сервере выполните команду «handle -a», перенаправив вывод в текстовый файл. Найдите это для затронутого имени файла. Это должно по крайней мере сказать вам, какой процесс на серверном компьютере имеет открытый дескриптор файла. Мне было бы интересно узнать, какой процесс имеет к этому отношение. (Меня интересует возможность антивирусного ПО ...)
Мои соболезнования за то, что мне пришлось иметь дело с GlobalShop, BTW.
Редактировать:
McAfee VirusScan 8, а? Посмотри на это: https://kc.mcafee.com/corporate/index?page=content&id=KB52156
Он относится к файлам Microsoft Office, но звучит подозрительно, как будто он может повлиять на любой тип файла. Смотрите также:
http://forums.mcafeehelp.com/showthread.php?t=223545
Procmon может быть вашим лучшим решением, так как он может регистрировать, какие процессы какие файлы используют. Даже если файл не отображается в openfiles, procmon регистрирует, кто его открыл. Обычно в таких случаях виновато антивирусное программное обеспечение.
У меня была аналогичная проблема на нашем файловом сервере (Windows Storage Server 2003 R2 x64). Только небольшие временные файлы (обычно «блокирующие» файлы Access .ldb, но также и временные файлы, используемые для различных процессов), никаких шаблонов по местоположению, размеру, имени или типу. Файлы были заблокированы без доступа к разрешениям; программы-разблокировщики (я использовал EMCO UnLock IT, попутно отмечу большой палец вверх) не видели никаких программ, удерживающих файлы как заблокированные. Перезагрузка всегда решала проблему, но это была серьезная проблема PITA, когда у всех были какие-то файлы, используемые на этом конкретном сервере.
Основываясь на комментариях здесь, я отключил наше антивирусное программное обеспечение на этом сервере. Без перезагрузки файл, который минуту назад был неприкасаемым, исчез (это был временный файл, который все равно следовало удалить, так что это было хорошо).
Антивирусное программное обеспечение - CA eTrust Antivirus v. 7.1. Я предполагаю (оглядываясь назад), что старое программное обеспечение + x64 OS = иногда плохие вещи. :-)
Благодарю Шона и Эвана за обсуждение.
Unlocker кажется, есть потенциал. Однако у меня еще не было возможности попробовать, так что дайте мне знать, как это работает.
Да, это очень старая тема. Но причина и решение подробно описаны на этой странице о поведении оппортунистической блокировки файлов в Windows. См. Содержимое под заголовком «Блокировки MS Windows и элементы управления кешированием» в конце страницы.
Ссылка на сайт: https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/locking.html
Первый абзац - ключ к разгадке того, почему это актуально (почти то, с чем столкнулся OP):
При запуске приложений (например, Norton Antivirus) на компьютере с Windows 2000 / XP существует известная проблема, которая может повлиять на любое приложение, пытающееся получить доступ к файлам общей базы данных по сети. Это результат настройки по умолчанию в операционной системе Windows 2000 / XP. Когда рабочая станция пытается получить доступ к общим файлам данных, расположенным на другом компьютере под управлением Windows 2000 / XP, операционная система Windows 2000 / XP будет пытаться повысить производительность, блокируя файлы и кэшируя информацию локально. Когда это происходит, приложение не может работать должным образом, что приводит к отображению сообщения об ошибке «Доступ запрещен» во время сетевых операций.
Надеюсь, поможет.