Por que o SYSTEM continuaria bloqueando identificadores de arquivos executáveis após o encerramento do aplicativo?

23

Estou vendo um comportamento estranho na minha máquina com Windows 7; parece que quando um executável é executado, o SYSTEM mantém um identificador para ele aberto pelo próximo minuto ou mais. Aqui está meu encontro mais recente:

Eu instalei o Steam, que inicia o steam.exe após a instalação para se atualizar. Ele parece fazer isso escrevendo uma cópia temporária de si mesmo, iniciando isso para executar o download e, em seguida, sobrescrevendo a cópia original do executável. No meu caso, isso falhou, alegando que o steam.exe não poderia ser excluído.

Eu abri a pasta e tentei apagar o steam.exe manualmente, mas o Windows alegou que eu não tinha permissão. Minha conta é um administrador e é a única conta de usuário nesta máquina. Mas, por precaução, iniciei o Explorer como Administrador, mas ainda não consegui excluir o arquivo. Eu trouxe as propriedades do arquivo para a guia Segurança, mas ele mostrou apenas uma mensagem dizendo que eu não tinha permissão para ver as permissões.

Em seguida, eu abri o Process Explorer para ver se alguma coisa tinha um bloqueio no arquivo. SYSTEM (PID 4) fez, mas quando eu tentei fechar o identificador de arquivo, produziu um erro informando que o identificador era inválido. Tentei ver as propriedades do manipulador de arquivos, mas também não tive permissão para fazer isso.

Eu terminei tudo, exceto os processos do sistema que não podem ser terminados, e interrompi todos os serviços que eu consegui, incluindo tudo AV & relacionado ao firewall, mas o problema continua aparecendo. Eu tentei usar 'takeown' para me dar a propriedade do arquivo, mas ele afirma que eu não tenho permissão para fazer isso. Outras pessoas reivindicaram o sucesso usando uma ferramenta chamada 'Unlocker', mas ele teve o mesmo problema que o Process Explorer em fechar o identificador de arquivos.

Há muito tempo, desabilitei a indexação do Windows & Pesquise e exclua C: \ da indexação, para que a resposta a esta pergunta não seja me aplique.

Toda vez, depois de aproximadamente um minuto, o identificador desaparece e o arquivo é imediatamente excluído; aparentemente, a tentativa do atualizador de excluí-lo foi enfileirada e finalmente concluída quando o arquivo não estava mais bloqueado. Infelizmente, a atualização já foi encerrada e não pode ser retomada. E quando eu reinstalar, é claro que ele tenta executar novamente o steam.exe e estou de volta à estaca zero.

Minha pergunta é: por que essas alças estão por aí e como posso impedi-las?

Editar: veja as informações adicionais solicitadas nos comentários:

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

Edit: GMER indica que meu antivírus (Kaspersky) ainda está ativo de alguma forma, apesar de desativá-lo a partir de sua própria GUI e seu serviço ser interrompido.

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)

Mas tudo isso parece ser para serviços de rede; Eu não vejo nada relacionado ao sistema de arquivos. Alguma dessas poderia ser a causa do problema?

Editar: desativei o filtro Kaspersky KLIF, mas o problema de bloqueio continua.

Editar: eu resolvi o problema específico com o Steam instalando, forçando o instalador antes que ele pudesse iniciar o steam.exe, depois reinicie no modo de segurança e o execute lá. Então, aparentemente, o que está bloqueando o executável não está presente no modo de segurança.

Embora eu tenha resolvido esse caso em particular, o problema também aparece em outros lugares, então ainda gostaria de entender o que está acontecendo.

    
por DNS 21.03.2011 / 16:13

5 respostas

20

Faça o seguinte:

  1. Desativar a indexação na localização problemática.

  2. Ative o serviço "Experiência de aplicativos" e defina-o como "Automático".

É isso.

Se o problema persistir, pode ser Superfetch, embora a desativação não tenha trazido sorte.

    
por 21.05.2011 / 05:11
5

O KLIF é o driver do Kaspersky AV. É bastante provável que tenha a ver com isso.

Meu curso de ação, nesse caso, seria entrar em contato com a Kaspersky e pedir conselhos.

No entanto, há outra coisa que você pode tentar primeiro: desabilitar o driver (em HKLM\SYSTEM\CurrentControlSet\Services ) procurando KLIF ou algo semelhante como nome da chave e definindo o valor REG_DWORD chamado Start to 4 (o que significa desativado) e, em seguida, reinicialize. Isso deve impedir que o driver do filtro KAV seja carregado. Você pode usar fltmc para verificar o resultado.

A saída do GMER que você forneceu é irrelevante para o caso em questão, já que afetaria apenas as conexões de rede, não as operações de arquivo. Parece que você tem algo como o Kaspersky Internet Security instalado (ou ainda o mantém inativo em sua máquina).

Editar: apenas FYI luafv é responsável pela virtualização do FS em conjunto com o UAC. Ou seja Se você não tiver acesso a um arquivo, ele será colocado em uma pasta separada dentro do seu perfil. FileInfo pertence ao SuperFetch - que na verdade poderia ser parte do seu problema, mas eu não tive um problema semelhante no Windows 7. Geralmente não é recomendado desabilitar o SuperFetch, embora seja possível.

    
por 22.03.2011 / 16:57
1

Eu estava tendo esse problema com um executável Java sendo aberto e eu tinha desativado a experiência do aplicativo ... (pesquisa do Windows desativada também) definindo a experiência do aplicativo para auto start fixou para mim. obrigado!!! (Eu também tive problemas com arquivos não salvos por um minuto inteiro e não poder apagar arquivos até um minuto depois que eu os fechei ...

    
por 30.01.2012 / 02:10
1

Isso aconteceu comigo uma vez e acabou sendo um computador remoto que tinha a pasta compartilhada aberta.

  1. Use Handle para descobrir qual processo está mantendo o arquivo
  2. (foi System no meu caso)
  3. Tente fechar o Handle: handle.exe -c E14 -p 4 . Seu identificador de arquivo será encontrado na saída de sua pesquisa para o identificador de arquivo, e o processid provavelmente será o mesmo para o sistema.
  4. É emitido Error closing handle: T
  5. Pesquisando isso, achei isso relacionado à rede
  6. eu encontrei em outra máquina, eu fiz de fato ter a pasta aberta. Fechou. Tudo bem.
por 21.06.2014 / 13:08
0

Eu tive esse problema ao tentar renomear uma pasta. Eu tive que parar o serviço do servidor ao executar a renomeação. A simples reinicialização não ajudou, pois o processo do sistema bloqueou novamente a pasta assim que o serviço do servidor foi reiniciado. Isso provavelmente resolveria o problema mencionado aqui também.

    
por 28.06.2016 / 04:33