Dlaczego system miałby nadal blokować uchwyty plików wykonywalnych po zamknięciu aplikacji?


24

Na moim komputerze z systemem Windows 7 widzę dziwne zachowanie; wygląda na to, że po uruchomieniu pliku wykonywalnego SYSTEM utrzymuje otwarty uchwyt przez około minutę. Oto moje ostatnie spotkanie:

Zainstalowałem Steam, który uruchamia się po instalacji steam.exe, aby się zaktualizować. Wydaje się, że robi to, pisząc tymczasową kopię siebie, uruchamiając ją w celu pobrania, a następnie nadpisując oryginalną kopię pliku wykonywalnego. W moim przypadku nie powiodło się, twierdząc, że nie można usunąć steam.exe.

Otworzyłem folder i próbowałem ręcznie usunąć steam.exe, ale Windows twierdził, że nie mam uprawnień. Moje konto jest administratorem i jest jedynym kontem użytkownika na tym komputerze. Ale na wszelki wypadek uruchomiłem Eksploratora jako Administrator, ale nadal nie mogłem usunąć pliku. Przywołałem Właściwości pliku na karcie Zabezpieczenia, ale pokazywał tylko komunikat informujący, że nie mam uprawnień do przeglądania uprawnień.

Następnie uruchomiłem Process Explorer, aby sprawdzić, czy coś ma blokadę w pliku. SYSTEM (PID 4) tak, ale kiedy próbowałem zamknąć uchwyt pliku, wystąpił błąd informujący, że uchwyt jest nieprawidłowy. Próbowałem wyświetlić właściwości uchwytu pliku, ale też nie miałem uprawnień, aby to zrobić.

Zakończyłem wszystko oprócz nie kończących się procesów systemowych i zatrzymałem wszystkie usługi, które mogę, w tym wszystkie związane z AV i zaporą ogniową, ale problem nadal występuje. Próbowałem użyć „takeown”, aby uzyskać własność pliku, ale twierdzi, że nie mam na to pozwolenia. Inne osoby twierdziły, że odniosły sukces przy użyciu narzędzia o nazwie „Unlocker”, ale miał ten sam problem co Process Explorer podczas zamykania uchwytu pliku.

Dawno temu wyłączyłem Indeksowanie i wyszukiwanie w systemie Windows i wykluczyłem C: \ z indeksowania, więc odpowiedź na to pytanie nie dotyczy mnie.

Za każdym razem, po około minucie, uchwyt znika, a plik jest natychmiast usuwany; najwyraźniej próba usunięcia aktualizacji przez program aktualizujący została umieszczona w kolejce i ostatecznie zakończona, gdy plik nie był już zablokowany. Niestety aktualizacja już się zakończyła i nie można jej wznowić. A kiedy ponownie instaluję, oczywiście próbuje ponownie uruchomić steam.exe i wracam do pierwszego.

Moje pytanie brzmi: dlaczego te uchwyty wiszą i jak mogę temu zapobiec?

Edycja: Oto dodatkowe informacje wymagane na podstawie komentarzy:

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

Edycja: GMER wskazuje, że mój program antywirusowy (Kaspersky) jest nadal w jakiś sposób aktywny, pomimo wyłączenia go z własnego GUI i zatrzymania usługi.

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)

Ale wszystko to wydaje się dotyczyć usług sieciowych; Nie widzę nic związanego z systemem plików. Czy którekolwiek z nich może być przyczyną problemu?

Edycja: Wyłączyłem filtr Kaspersky KLIF, ale problem z blokowaniem pozostaje.

Edycja: Rozwiązałem konkretny problem ze Steam, instalując, wymuszając zakończenie instalatora przed uruchomieniem steam.exe, a następnie restartując w trybie awaryjnym i uruchamiając go tam. Najwyraźniej cokolwiek blokuje plik wykonywalny, nie występuje w trybie awaryjnym.

Chociaż rozwiązałem ten konkretny przypadek, problem pojawia się również gdzie indziej, więc nadal chciałbym zrozumieć, co się dzieje.


3
„System” to pseudoproces, który reprezentuje (z grubsza) jądro systemu Windows. Aby uzyskać jednoznaczną odpowiedź, potrzebne byłyby dodatkowe informacje na temat konfiguracji (np. Jakie sterowniki filtrów są w użytkowniku).
0xC0000022L

Jaki jest najlepszy sposób na uzyskanie tych dodatkowych informacji?
DNS

jeśli są to mini filtry, spróbuj sprawdzić, fltmcczy są to starsze filtry, aby wyświetlić listę filtrowanych obiektów, potrzebujesz narzędzia takiego jak GMER. Wiem, że nie jest to główny cel GMER, ale można go w ten sposób wykorzystać. Kiedyś było też jakieś narzędzie z OSR, ale nie pamiętam jego nazwy. Odpowiem ponownie, jeśli pamiętam.
0xC0000022L

Jest to optymalizacja dla programów, które wielokrotnie zamykają i ponownie otwierają pliki. Usługa „Application Experience” pokonuje optymalizację w szczególnych przypadkach, takich jak próba usunięcia z Eksploratora Windows, gdy uchwyt jest nadal buforowany.
user165568

Odpowiedzi:


20

Wykonaj następujące czynności:

  1. Wyłącz indeksowanie w problematycznej lokalizacji.

  2. Włącz usługę „Application Experience” i ustaw ją na „Automatic”.

To jest to.

Jeśli Twój problem nadal występuje, może to być funkcja Superfetch, ale wyłączenie nie przyniosło mi szczęścia.


5
# 2 (Włączenie usługi „Application Experience”) działało dla mnie, dzięki! Naprawdę bolało mnie podczas debugowania mojego oprogramowania LIVEditor (edytor HTML na żywo), ponieważ muszę wielokrotnie kompilować plik EXE.
Edwin Yip,

1
Indeksowanie nie było czymś, co chciałem wyłączyć, ale na szczęście po prostu ustawiłem Application Experience na Automatic. Nie mogę uwierzyć, że żyłem z tym problemem przez ostatnie 5 lat, kiedy naprawa była tak prosta.
Mordred

za tobą, kocham cię !!
entuzjastów

Zaczynałem AeLookupSvc, ale dlaczego? Czym jest ta tajemnicza usługa?
cdlvcdlv 27.04.18

6

KLIF to sterownik Kaspersky AV. Raczej ma to związek z tym.

Moim sposobem postępowania w takim przypadku byłoby skontaktowanie się z Kaspersky Lab i poproszenie o poradę.

Istnieje jednak inna sprawa, można spróbować najpierw: wyłączyć sterownik (pod HKLM\SYSTEM\CurrentControlSet\Services) szukając KLIFlub coś podobnego jak nazwa klucza i ustawiając REG_DWORDwartość o nazwie Startdo 4(co oznacza wyłączony), a następnie ponowne uruchomienie. Powinno to zapobiec ładowaniu sterownika filtra KAV. Następnie możesz użyć fltmcdo zweryfikowania wyniku.

Dane wyjściowe z GMER, które podałeś, nie mają znaczenia dla rozpatrywanej sprawy, ponieważ wpłynęłyby tylko na połączenia sieciowe, a nie na operacje na plikach. Wygląda na to, że zainstalowałeś coś takiego jak Kaspersky Internet Security (lub nadal masz uśpiony na swoim komputerze).

Edycja: just FYI luafvodpowiada za wirtualizację FS w połączeniu z UAC. To znaczy, jeśli nie masz dostępu do pliku, jest on umieszczany w osobnym folderze w twoim profilu. FileInfonależy do SuperFetch - co może być częścią twojego problemu, ale sam nie miałem podobnego problemu na Windows 7. Zasadniczo nie zaleca się wyłączania SuperFetch, chociaż można.


Nie pozwoli mi to zmienić wartości tego klucza, więc zrestartowałem się w trybie awaryjnym i tam wprowadziłem zmianę. Po ponownym uruchomieniu wpisy KLIF znikają z wyjścia fltmc, ale problem z blokowaniem pozostaje.
DNS

Dodałem trochę więcej informacji; zobacz moją ostatnią edycję pytania.
DNS

@DNS: czy próbowałeś uzyskać wyjście z fltmctrybu awaryjnego? Możliwe, że funkcja SuperFetch nie jest aktywna. Kiedy czytasz w SuperFetch, brzmi to tak, jakby Twój opis trzymania uchwytu nieco dłużej był wiarygodny.
0xC0000022L

To bardzo dobra myśl, ale niestety zarówno FileInfo, jak i luafv były aktywne w trybie awaryjnym.
DNS

Te nowoczesne apartamenty z zabezpieczeniami internetowymi są często przepełnione, rzadko przynoszą pożytek. MSE + zdrowy rozsądek powinien wystarczyć.
kinokijuf

1

Miałem ten problem z utrzymywaniem otwartego pliku wykonywalnego Java i miałem wyłączoną obsługę aplikacji ... (także wyszukiwanie w Windows wyłączone) ustawianie aplikacji do automatycznego uruchamiania naprawiło to dla mnie. dzięki!!! (Miałem również problemy z tym, że pliki nie były zapisywane przez całą minutę i nie mogłem usunąć plików przed upływem jednej minuty po ich zamknięciu ...


Jak wyłączyć obsługę aplikacji?
Simon Sheehan

Dowolny punkt kontrolny usług systemu Windows zrobi - używam Start >> Uruchom >> „services.msc” (enter) >> kliknij prawym przyciskiem myszy „doświadczenie aplikacji” >> kliknij lewym przyciskiem myszy „właściwości” >> wybierz zakładkę „ogólne” (domyślnie)> > rozwijane pole listy „typ uruchamiania” >> wybierz automatycznie (lewy przycisk myszy) >> kliknij „zastosuj”
David K

1

Zdarzyło mi się to raz i okazało się, że jest to komputer zdalny z otwartym folderem udostępniania.

  1. Użyj uchwytu, aby dowiedzieć się, jaki proces przetrzymuje plik
  2. (W moim przypadku był to System)
  3. Spróbuj zamknąć Uchwyt: handle.exe -c E14 -p 4. Uchwyt pliku zostanie znaleziony w wynikach wyszukiwania uchwytu pliku, a identyfikator procesu prawdopodobnie będzie taki sam dla systemu.
  4. To wyjście Error closing handle: T
  5. Przeglądając to, znalazłem to związane z siecią
  6. Znalazłem na innym komputerze, w rzeczywistości miałem otwarty folder. Zamknąłem to. Wszystko dobrze.

0

Miałem ten problem podczas próby zmiany nazwy folderu. Podczas zmiany nazwy musiałem zatrzymać usługę serwera. Ponowne uruchomienie nie pomogło, ponieważ proces systemowy ponownie zablokował folder zaraz po ponownym uruchomieniu usługi serwera. To prawdopodobnie rozwiązałoby również wspomniany tutaj problem .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.