Windows 2008 R2 - Ядро (системный процесс PID=4) блокирует файлы и папки
Windows 2008 R2 - Ядро (системный процесс PID=4) долго блокирует файлы и папки. Например, при удалении файла он может оставаться заблокированным в течение 1 минуты или более и только после этого удаляется. В других случаях я сталкивался с файлами или папками, которые не мог удалить. ProcMon показал, что системный процесс удерживал дескриптор этих ресурсов в течение нескольких минут, а затем выпустил их. Ни один из упомянутых мной ресурсов не был системным ресурсом, только мои файлы и папки были установлены мной и обработаны моими приложениями.
8 ответов
Как Дани уже упоминал в комментарии:
Это ошибка в Windows 7 и, вероятно, в Windows Server 2008 (возможно, только для 64-битных версий). Он появляется, когда вы отключаете сервис Application Experience.
Повторное включение этой службы устранило эту проблему для меня.
Немного больше информации о том, почему это вызывает проблемы.
Список других вопросов SO, которые кажутся связанными:
Файлы, к которым осуществляется доступ через общий ресурс, будут заблокированы системным процессом (PID 4).
Попробуйте открыть compmgmt.msc
-> Системные инструменты -> Общие папки -> Открыть файлы, чтобы увидеть, есть ли там заблокированный файл
См. Также форум sysinternals для способа воспроизвести это.
Не все приложения блокируют файлы при их открытии, однако Excel...
В моем случае это было исправлено с помощью простой команды в командной строке:
net session /delete
Надеюсь, это поможет.
Надеюсь, что это помогает другим.
откройте окна и запустите mmc.exe
Файл -> Добавить или удалить оснастку -> Общие папки -> локальный компьютер
Выберите Открыть файлы, прокрутите вниз до каталога или файла и щелкните правой кнопкой мыши, чтобы закрыть.
Вы также можете получить имя пользователя с блокировкой и перейти к сеансам и щелкнуть правой кнопкой мыши -> закрыть сеанс.
В моем случае это была MacOS 10.13 с открытыми блокировками файлов... https://support.apple.com/en-us/HT208209
У меня была эта проблема при попытке переименовать папку. Мне пришлось остановить серверную службу при выполнении переименования. Просто перезапуск не помог, так как системный процесс повторно заблокировал папку, как только перезапустилась служба сервера.
Возникла эта проблема только сейчас, когда пытался реплицировать данные на новый файловый сервер (как исходный, так и целевой серверы под управлением Windows 2008 R2).
Был найден PID 4, блокирующий файл (с использованием procxp, как указано выше), но Application Experience никогда не устанавливался ни на одном сервере, и файл не отображался в списке открытых файлов.
К счастью, мы используем запланированные теневые копии на этом сервере (чтобы пользователи могли самостоятельно восстанавливать большинство файлов). Я просто использовал опцию "Предыдущие версии" (доступно через "Свойства" содержащей папки), выбрал самую последнюю копию файла и скопировал ее в другое место, затем удалил и заменил файл проблемы.
Вам может понадобиться удалить содержащуюся папку, чтобы удалить файл - что может быть проблемой, если очевидно, что используется много файлов (для меня это не было проблемой, поскольку это был единственный файл в папке).
Для единовременной проблемы, как у меня (один заблокированный файл для всего диска сервера), это работало без каких-либо помех для сервера или пользователей.
Учитывая, что вы говорите о сервере и о том, что теневые копии используют VSS, вы должны иметь возможность восстановить заблокированный файл из ваших резервных копий (предположительно, у вас они есть), если вы не используете теневые копии. В противном случае есть несколько полезных утилит, таких как ShadowSpawn ( https://github.com/candera/shadowspawn), которые могут помочь.
Перепробовал все это...
Даже копирование файла, удаление оригинала, переименование копии в оригинальное имя (все на сервере) немедленно скажут мне, что пользователь заблокировал его.
В конце -
использовал Unlocker для очистки файловых блокировок. Скопировал файл ОТ СЕРВЕРА на рабочий стол. Удалил оригинальный файл с сервера. Изменено имя файла копии на рабочем столе. Переименовал его обратно в исходное имя на рабочем столе. Поместите файл обратно в исходное место на сервере.
HTH, YMMV...:)