Я вижу странное поведение на моей машине с 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, затем перезапустив в безопасном режиме и запустив его там. Таким образом, очевидно, что все, что блокирует исполняемый файл, отсутствует в безопасном режиме.
Хотя я решил этот конкретный случай, проблема возникает и в других местах, поэтому я все же хотел бы понять, что происходит.