Dowiedz się, który proces blokuje plik lub folder w systemie Windows

715

Jak mogę dowiedzieć się, który proces blokuje plik lub folder w systemie Windows?

Na przykład podczas próby usunięcia folderu system Windows zgłasza to:

Nie można ukończyć działania, ponieważ folder jest otwarty w innym programie

Zdarza się tak samo z plikiem, ale jak mogę dowiedzieć się, który program lub aplikacja aktualnie go używa i nie pozwala mi usunąć pliku lub folderu?

leeand00
źródło
5
Zobacz to pytanie ServerFault .
John Fouhy,
1
Czy Twój plik to film? Może się okazać, że sam Eksplorator Windows „używa” pliku ...
DisgruntledGoat
37
Jak to jest duplikat? W szczególności pyta, jak dowiedzieć się, który proces blokuje plik, a nie jak usunąć zablokowany plik.
b1nary.atr0phy
8
Nie mogę tutaj dodać wbudowanej, prostszej odpowiedzi, ponieważ została niepoprawnie oznaczona jako duplikat, ani nie mogę dodać jej do drugiego wątku, ponieważ dotyczy to tylko XP. Ale w każdym razie, w przypadku wersji Windows z Monitorem zasobów (wpisz go w pasku wyszukiwania), przejdź do karty Procesor / Powiązane uchwyty, a następnie wyszukaj plik lub folder.
jontyc
Dowiedziałem się, że Windows 10 (i chyba już w Windows 7) ma program o nazwie Monitor zasobów, który pozwala zobaczyć, jakie procesy blokują plik lub folder: stackoverflow.com/a/24126882/470749
Ryan

Odpowiedzi:

67

Metoda PowerShell:

IF((Test-Path -Path $FileOrFolderPath) -eq $false) {
    Write-Warning "File or directory does not exist."       
}
Else {
    $LockingProcess = CMD /C "openfiles /query /fo table | find /I ""$FileOrFolderPath"""
    Write-Host $LockingProcess
}

openfilesKomenda musi mieć włączone wsparcie dla lokalnych plików, uruchamiając openfiles /local oni ponowne uruchomienie.

Więcej informacji Jak dowiedzieć się, który proces blokuje plik lub folder w systemie Windows

szczery
źródło
12
Tę funkcję należy najpierw włączyć za pomocąopenfiles /local on
mstrange
5
Niestety openfileswydaje się , że nie działa w 64-bitowym systemie Windows:ERROR: The target system must be running a 32 bit OS.
Thomas S.
1
Działa na Win10 64 dla mnie
Michael
3
Wygląda na to, że w zasadzie można to osiągnąć w czystym cmd openfiles /query /fo table | find /I "<path>"?
mwfearnley
1
... Jeśli chcemy ponownie uruchomić, aby coś włączyć, dlaczego nie mielibyśmy po prostu ponownie uruchomić, aby uzyskać dostęp do folderu? Nie rozumiem, jak to rozwiązało problem OP, gdy „po prostu zrestartuj komputer” byłoby znacznie łatwiejsze i nadal wymagałoby ponownego uruchomienia.
Nic Hartley,
689

W tym celu można użyć Monitora zasobów, który jest wbudowany w Windows 7, 8 i 10.

  1. Otwórz Monitor zasobów , który można znaleźć
    • Szukając Resource Monitor lub resmon.exe w menu Start, lub
    • Jako przycisk na karcie Wydajność w Menedżerze zadań
  2. Przejdź do zakładki CPU
  3. Użyj pola wyszukiwania w Associated Uchwyty sekcję
    • Zobacz niebieską strzałkę na zrzucie ekranu poniżej

Po znalezieniu uchwytu możesz zidentyfikować proces, patrząc na kolumnę Obraz i / lub PID.

Następnie możesz spróbować zamknąć aplikację w normalny sposób lub, jeśli nie jest to możliwe, wystarczy kliknąć prawym przyciskiem myszy uchwyt i zabić proces bezpośrednio z tego miejsca. Bułka z masłem!

Zrzut ekranu Monitora zasobów

Svish
źródło
18
Uwaga: Monitor zasobów nie znalazł żadnych powiązanych uchwytów w moim przypadku, podczas gdy Process Explorer (jak opisano powyżej ).
ComFreek
15
@ComFreek Cóż, ProcessExplorer może być bardziej wydajny w wielu przypadkach, ale dla mnie Monitor zasobów zawsze znajdował aplikację blokującą plik, z którym próbuję coś zrobić. Wolę też od Process Explorera, ponieważ jest on dostępny w systemie operacyjnym. Nie ma potrzeby dodatkowego pobierania i dodatkowego skrótu.
Svish
8
Nie mogłem tego znaleźć w Process Explorer, ale łatwo było zlokalizować te instrukcje w Resource Manager. Dzięki.
Tatiana Racheva,
6
@ComFreek W moim przypadku była to tylko druga sprawa: Process Explorer nie znalazł uchwytu, podczas gdy Monitor zasobów -.
Uwe Keim,
9
+1 - działa to również dobrze na Windows 10
Matt Innes
390

Kilka opcji:

Microsoft / SysInternals Process Explorer - Wybierz Znajdź> Znajdź uchwyt lub DLL. W polu tekstowym „Podpisz uchwyt lub DLL:” wpisz ścieżkę do pliku (np. „C: \ path \ to \ file.txt”) i kliknij „Wyszukaj”. Należy wymienić wszystkie procesy, które mają otwarty uchwyt tego pliku.

WhoLockMe - rozszerzenie Explorer, które dodaje opcję menu prawym przyciskiem myszy

Uwaga: WhoLockMe wydaje się nie działać z Win 10 (przynajmniej nie byłem w stanie zarejestrować go w 32- lub 64-bitowej wersji regsvr32.exe).

Shevek
źródło
26
W systemie Windows 7, jeśli spróbujesz usunąć plik, który jest zablokowany, komunikat o błędzie pokaże, który proces ma zablokowany plik
Garry English,
10
UWAGA: Unlocker instaluje oprogramowanie reklamowe, jeśli nie jesteś ostrożny. Ze strony internetowej: „Funkcja promocyjna: w pełni opcjonalny pasek narzędzi Delta”.
Julian Knight
11
@GarryEnglish z jakiegoś powodu nie zawsze tak jest. Musiałem tylko użyć procexp, aby powiedzieć mi, że notepad ++ ma blokadę folderu. Windows 7 nie był w stanie powiedzieć mi winnego.
GuiSim
4
@ jpmc26 Nie. WhoLockMe nie działa w systemie Windows 7.
od
3
@ GarryEnglish- Jak stwierdził GuiSim, na pewno nie zawsze tak jest, a z mojego doświadczenia wynika, że ​​rzadko.
dgo
196

Spójrz na Process Explorer ( procexp.exe).

Od jego wprowadzenia:

Czy zastanawiałeś się kiedyś, który program ma otwarty plik lub katalog? Teraz możesz się dowiedzieć.

Aby dowiedzieć się, jaki proces korzysta z określonego pliku, wykonaj następujące kroki:

  1. Przejdź do Znajdź , Znajdź uchwyt lub DLL .. lub po prostu naciśnij Ctrl+ F.

    Wpisz opis zdjęcia tutaj

  2. Wprowadź nazwę pliku i naciśnij Wyszukaj .

    Wpisz opis zdjęcia tutaj

  3. Process Explorer wyświetli listę wszystkich procesów, które mają otwarty uchwyt pliku. Kliknij pozycję, aby skoncentrować proces w oknie głównym.

    Wpisz opis zdjęcia tutaj

  4. Opcjonalnie możesz nawet ręcznie zamknąć uchwyt w dolnym okienku ( Ctrl+ L):

    Wpisz opis zdjęcia tutaj

Eroen
źródło
6
Process Hacker również może to zrobić.
Benoit,
5
Jak wspomniano w innej odpowiedzi , Handle to narzędzie wiersza polecenia SysInternals, które również wykona to zadanie.
heavyd
Zapomniałem otwartego procesu cmd w folderze, eksplorator procesów pomógł mi to zauważyć.
davejal,
Uwaga dla Googlersów, obecna wersja PE wydaje się już nie obsługiwać Close Handle
MickyD
Nie działa w Win10 64-bit 1709
K7AAY
30

LockHunter może odblokować wszystkie programy obsługi, które mogły zablokować twoje pliki lub foldery. W przeciwieństwie do podobnych darmowych programów obsługuje zarówno 32-bitowy, jak i 64-bitowy system Windows.

Jest to bezpłatne narzędzie do usuwania plików zablokowanych przez coś, czego nie znasz. LockHunter jest przydatny do walki ze złośliwym oprogramowaniem i innymi programami, które blokują pliki bez powodu. W przeciwieństwie do innych podobnych narzędzi usuwa pliki do kosza, więc możesz je przywrócić, jeśli zostaną przypadkowo usunięte.

  • Pokazuje procesy blokujące plik lub folder
  • Pozwala odblokować, usunąć, skopiować lub zmienić nazwę zablokowanego pliku
  • Pozwala zabić proces blokowania
  • Pozwala usunąć procesy blokowania z dysku twardego
  • Integruje się z menu Eksploratora
  • Usuwa pliki do kosza, więc możesz je przywrócić, jeśli zostaną przypadkowo usunięte
  • Obsługuje 32-bitowy i 64-bitowy system Windows
Mehper C. Palavuzlar
źródło
5
Dwie pierwsze odpowiedzi mi nie działały, a kolejne, które zostały pozytywnie ocenione, zostały albo zablokowane przez moją zaporę ogniową, albo ostrzeżone, by nie przechodzić przez mój chrome! LockHunter działał idealnie.
user3885927,
1
Łowca szczęścia pracował dla mnie, gdy inni tego nie
robią
Ten działa.
jdhao
10

EMCO UnlockIT może zidentyfikować proces, który zablokował plik, a także odblokować plik, aby można go było usunąć / edytować / przenieść. Program jest całkowicie darmowy, chociaż nowsza wersja jest nieco wolniejsza i bardziej rozdęta niż wersja oryginalna (która miała prosty, pozbawiony skórki interfejs GUI, ale ładowała się niemal natychmiastowo i bez irytującego ekranu powitalnego). Oryginalna wersja wyświetlała się automatycznie za każdym razem, gdy pojawia się wspomniany błąd, umożliwiając natychmiastowe odblokowanie pliku i wykonanie operacji, którą próbujesz wykonać.

Mimo to UnlockIT to niezwykle przydatny program, który zapewnia podstawową funkcjonalność, której krytycznie brakuje w systemie Windows. Należy do standardowego zestawu narzędzi, które instaluję na wszystkich komputerach z systemem Windows, na których pracuję.

Lèse majesté
źródło
@John: Cóż, identyfikuje program, który zablokował plik. Nadal możesz ręcznie zabić proces za pomocą menedżera zadań. Zwykle jednak łatwiej jest po prostu odblokować plik (szczególnie, gdy to eksplorator blokuje plik przez większość czasu) zamiast zabijać proces, który go zablokował (zwykle z powodu dostępu do pliku i pozostawienia otwartej procedury obsługi plików z powodu usterki programu).
Lèse majesté
2

Oto moje odkrycie i rozwiązanie.

Nawiasem mówiąc, żadna z powyższych odpowiedzi nie rozwiązała mojego problemu.

Próbowałem nawet użyć UNLOCKERA, który okazał się bezwartościowy.

Moim problemem był problem z Memeo Autosync Backup

Najwyraźniej ten proces tworzenia kopii zapasowej pozostawia dość „pliku przypominającego ducha”. Ten „plik przypominający ducha” pojawiałby się za każdym razem, gdy ALT-TAB pojawiał się na moim komputerze (Windows Professional XP), tzn. Widziałem DWIE programy MS Excel uruchomione, gdy tylko JEDNA była widoczna, na pasku zadań.

Natknąłem się na to rozwiązanie, gdy pomyślałem, że może to być ochrona punktu końcowego SYMANTEC (antywirusowego); i wyłączył program. Jednak ciągle pojawiał się komunikat o błędzie:

nie można usunąć (plik LARGE.xls): jest używany przez inną osobę lub program. Zamknij wszystkie programy, które mogą korzystać z tego pliku, i spróbuj ponownie.

Później widziałem komunikat Memeo o „synchronizacji” i WYJŚCIE z programu.

Następnie BRAK BŁĘDÓW.

Dla Ciebie może to być KAŻDY z tych zapisów w tle.

wcześniej sfrustrowany użytkownik programu Excel
źródło
2

Jeśli nie znasz programu, z którego korzysta plik, możesz przejść do Mojego komputera; prawy przycisk myszy; wybierz Zarządzaj. W obszarze Narzędzia systemowe> Foldery udostępnione> Otwórz pliki powinna być widoczna nazwa użytkownika, który zablokował plik. Możesz zamknąć plik stąd, a następnie możesz wykonać zadanie zmiany nazwy lub usunięcia pliku. Mam nadzieję że to pomoże

Rajesz
źródło
1
Działa to tylko w przypadku folderów współdzielonych.
sweetfa
1

Dodatkowa możliwość, aby zaoszczędzić ludziom czas, który właśnie spędziłem:

W starszych wersjach systemu Windows może pojawić się komunikat „Odmowa dostępu - możesz nie mieć uprawnień lub plik może być używany”. Jeśli odkryjesz w Process Explorer, że pliki nie są w rzeczywistości otwierane przez nikogo, istnieje prawdopodobieństwo, że występuje problem z bezpieczeństwem. Za pomocą konta administratora wybierz pliki w Eksploratorze, kliknij prawym przyciskiem myszy i wybierz Właściwości, Bezpieczeństwo, Zaawansowane, Właściciel. Istnieje prawdopodobieństwo, że pliki są własnością konta, które już nie istnieje lub nie można go zweryfikować (z powodu zmiany ustawień zaufania usługi Active Directory).

Zmień własność na Administratorzy i gotowe.

Stu
źródło
0

Wiele programów tutaj jest nieaktualnych. W końcu wykorzystałem OpenedFilesView firmy nirsoft, który działał naprawdę dobrze.

Zrzut ekranu

Jednak najlepszą częścią jest integracja menu eksploratora, którą można łatwo włączyć. Jak na stronie internetowej

Menu kontekstowe Eksploratora

Począwszy od wersji 1.10, możesz uruchomić OpenedFilesView bezpośrednio z Eksploratora Windows i przeglądać tylko uchwyty pliku lub folderu, który chcesz sprawdzić. Aby włączyć tę funkcję, zaznacz „Włącz menu kontekstowe Eksploratora” w menu Opcje. Po włączeniu tej funkcji można kliknąć prawym przyciskiem myszy dowolny plik lub folder w Eksploratorze Windows i wybrać z menu pozycję „OpenedFilesView”. Jeśli uruchomisz opcję OpenedFilesView dla folderu, wyświetli on wszystkie otwarte pliki w tym folderze. Jeśli uruchomisz opcję OpenedFilesView dla pliku, wyświetli on wszystkie otwarte uchwyty dla tego pliku.

menu kontekstowe

To narzędzie nadal działa niezawodnie w 2019 roku

Vijay
źródło