23

Я вижу странное поведение на моей машине с Windows 7; похоже, что когда исполняемый файл запускается, SYSTEM держит дескриптор к нему открытым в течение следующей минуты или около того. Вот моя последняя встреча:

Я установил Steam, который запускает steam.exe после установки, чтобы обновить себя. По-видимому, это делается путем написания собственной временной копии, запуска ее для загрузки, а затем перезаписи исходной копии исполняемого файла. В моем случае это не удалось, утверждая, что steam.exe не может быть удален.

Я открыл папку и попытался удалить steam.exe вручную, но Windows заявила, что у меня нет разрешения. Моя учетная запись является администратором и является единственной учетной записью пользователя на этом компьютере. Но на всякий случай я запустил Explorer в качестве администратора, но все равно не смог удалить файл. Я поднял Свойства файла на вкладку Безопасность, но там отображалось только сообщение о том, что у меня нет разрешения на просмотр разрешений.

Затем я вызвал Process Explorer, чтобы посмотреть, не блокирует ли что-либо файл. SYSTEM (PID 4) сделал, но когда я попытался закрыть дескриптор файла, он выдал ошибку, сообщающую, что дескриптор был недействительным. Я пытался просмотреть свойства дескриптора файла, но у меня тоже не было разрешения на это.

Я прекратил все, кроме не завершаемых системных процессов, и остановил все доступные мне службы, включая все, что связано с AV и брандмауэром, но проблема продолжает появляться. Я пытался использовать 'takeown', чтобы получить право владения файлом, но он утверждает, что у меня нет разрешения на это. Другие люди заявили об успехе, используя инструмент под названием «Unlocker», но у него была та же проблема, что и у Process Explorer при закрытии дескриптора файла.

Я давно отключил Windows Indexing & Search и исключил C:\ из индексации, поэтому ответ на этот вопрос мне не подходит.

Каждый раз, примерно через минуту, дескриптор исчезает, и файл немедленно удаляется; очевидно, попытка обновления удалить его поставлена в очередь и, наконец, закончилась, когда файл больше не был заблокирован. К сожалению, обновление уже прекращено и не может возобновиться. И когда я переустанавливаю, он, конечно, пытается снова запустить steam.exe, и я возвращаюсь к исходной точке.

У меня вопрос: почему эти ручки болтаются и как я могу им помешать?

Изменить: Вот дополнительная информация, запрошенная из комментариев:

C:\>fltmc instances
Filter                Volume Name                              Altitude        Instance Name      Frame  VlStatus
--------------------  -------------------------------------  ------------  ---------------------  -----  --------
KLIF                  \Device\Mup                             320400       KLIF                     0
KLIF                  C:                                      320400       KLIF                     0
KLIF                                                          320400       KLIF                     0
luafv                 C:                                      135000       luafv                    0
FileInfo              \Device\Mup                              45000       FileInfo                 0
FileInfo              C:                                       45000       FileInfo                 0
FileInfo                                                       45000       FileInfo                 0

Изменить: GMER указывает, что мой антивирус (Kaspersky) по-прежнему активен в некотором роде, несмотря на отключение его из собственного графического интерфейса, и его служба остановлена.

AttachedDevice  \Driver\tdx \Device\Ip     kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice  \Driver\tdx \Device\Tcp    kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice  \Driver\tdx \Device\Udp    kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice  \Driver\tdx \Device\RawIp  kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)

Но все это, кажется, для сетевых служб; Я не вижу ничего, связанного с файловой системой. Может ли что-нибудь из этого быть причиной проблемы?

Изменить: Я отключил фильтр Kaspersky KLIF, но проблема блокировки остается.

Изменить: Я решил конкретную проблему со Steam, установив, принудительно завершив установку, прежде чем он смог запустить steam.exe, затем перезапустив в безопасном режиме и запустив его там. Таким образом, очевидно, что все, что блокирует исполняемый файл, отсутствует в безопасном режиме.

Хотя я решил этот конкретный случай, проблема возникает и в других местах, поэтому я все же хотел бы понять, что происходит.

5 ответов5

20

Сделайте следующее:

  1. Отключите индексирование проблемного местоположения.

  2. Включите службу Application Experience и установите для нее значение "Automatic".

Вот и все.

Если ваша проблема все еще сохраняется, это может быть Superfetch, хотя отключение не принесло мне удачи.

5

KLIF - это драйвер Kaspersky AV. Скорее всего, это связано с этим.

Мой план действий в таком случае - связаться с Касперским и попросить совета.

Однако есть еще одна вещь, которую вы можете попробовать сначала: отключите драйвер (в разделе HKLM\SYSTEM\CurrentControlSet\Services), выполнив поиск KLIF или что-то похожее на имя ключа и установив значение REG_DWORD именем Start в 4 (что означает отключение), затем перезагружать. Это должно предотвратить загрузку драйвера фильтра KAV. Затем вы можете использовать fltmc для проверки результата.

Вывод GMER, который вы дали, не имеет значения для рассматриваемого случая, поскольку он влияет только на сетевые соединения, а не на файловые операции. Похоже, у вас установлено что-то вроде Kaspersky Internet Security (или оно все еще неактивно на вашем компьютере).

Изменить: только FYI luafv отвечает за виртуализацию FS в сочетании с UAC. Т.е. если у вас нет доступа к файлу, он помещается в отдельную папку внутри вашего профиля. FileInfo принадлежит SuperFetch - что на самом деле может быть частью вашей проблемы, но у меня не было аналогичной проблемы в Windows 7. Обычно не рекомендуется отключать SuperFetch, хотя можно.

1

У меня была эта проблема с открытым исполняемым файлом Java, и я отключил взаимодействие с приложением ...(поиск Windows также отключен), настроив его на автоматический запуск, исправил это для меня. Спасибо!!! (У меня также были проблемы с файлами, которые не сохранялись целую минуту и не могли удалять файлы до тех пор, пока я не закрыл их ...

1

Это случилось со мной однажды, и это оказался удаленный компьютер с открытой папкой общего доступа.

  1. Используйте Handle, чтобы узнать, какой процесс удерживает файл
  2. (Это была Система в моем случае)
  3. Попробуйте закрыть дескриптор : handle.exe -c E14 -p 4 . Ваш дескриптор файла будет найден в результатах поиска по дескриптору файла, и для идентификатора процесса, вероятно, будет то же самое.
  4. Вывод Error closing handle: T
  5. Погуглив это, я обнаружил, что это связано с сетью
  6. Я нашел на другой машине, у меня действительно была открытая папка. Закрыто. Все хорошо.
0

У меня была эта проблема при попытке переименовать папку. Мне пришлось остановить службу сервера при выполнении переименования. Просто перезапуск не помог, так как системный процесс повторно заблокировал папку, как только перезапустилась служба сервера. Это, вероятно, решит и проблему, упомянутую здесь .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .