Как определить, открыт ли конкретный файл в Windows?
Один из моих любимых инструментов для Linux 9X_filesystem — lsof — настоящий швейцарский армейский нож!
Сегодня 9X_windows-programming мне стало интересно, какие программы в системе 9X_windows-programming WinXP открывают определенный файл. Есть 9X_windows ли эквивалентная утилита для lsof? Кроме 9X_filesystem того, рассматриваемый файл находился на 9X_filesystems общем сетевом ресурсе, поэтому я не уверен, что 9X_windows-applications это усложняет ситуацию.
Ответ #1
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
Используйте Process Explorer из Sysinternals Suite, функция 9X_windows Find Handle или DLL позволит вам найти процесс 9X_windows-application с открытым файлом.
- @MatthewMcCullough Есть ссылки? Вы ошиблись, [Process Explorer] (http://technet.microsoft.com/en-us/sysinternals/bb896653) и ...
Ответ #2
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
Эквивалент lsof -p pid
- это комбинированный вывод 9X_linux дескриптора sysinternals и listdll, т. е.
handle -p pid
listdlls -p pid
вы 9X_command-line можете узнать pid с помощью sysinternals 9X_windows-application pslist
.
Ответ #3
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
Попробуйте Handle. Filemon и Regmon также отлично подходят 9X_windows-applications для того, чтобы попытаться выяснить, что 9X_windows программа duce foo делает с вашей системой.
- @slipsec FileMon и Regmon теперь заменены на [Process Monitor v3.2] (https://technet.microsoft.com/en-us/sysinter ...
Ответ #4
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
Один эквивалент lsof может быть объединен с 9X_windows выводом handle и listdll Sysinternals, то есть:
c:\SysInternals>handle
[...]
------------------------------------------------------------------------------
gvim.exe pid: 5380 FOO\alois.mahdal
10: File (RW-) C:\Windows
1C: File (RW-) D:\some\locked\path\OpenFile.txt
[...]
c:\SysInternals>listdlls
[...]
------------------------------------------------------------------------------
Listdlls.exe pid: 6840
Command line: listdlls
Base Size Version Path
0x00400000 0x29000 2.25.0000.0000 D:\opt\SysinternalsSuite\Listdlls.exe
0x76ed0000 0x180000 6.01.7601.17725 C:\Windows\SysWOW64\ntdll.dll
[...]
c:\SysInternals>listdlls
К сожалению, вы 9X_command-line должны «работать от имени администратора», чтобы 9X_filesystem использовать их.
Также listdll и handle не создают непрерывную 9X_windows-applications табличную форму, поэтому фильтрация имени 9X_filesystems файла скроет PID. Однако findstr /c:pid: /c:
должен максимально 9X_windows-application приблизить вас к обеим утилитам
c:\SysinternalsSuite>handle | findstr /c:pid: /c:Driver.pm
System pid: 4 \
smss.exe pid: 308 NT AUTHORITY\SYSTEM
avgrsa.exe pid: 384 NT AUTHORITY\SYSTEM
[...]
cmd.exe pid: 7140 FOO\alois.mahdal
conhost.exe pid: 1212 FOO\alois.mahdal
gvim.exe pid: 3408 FOO\alois.mahdal
188: File (RW-) D:\some\locked\path\OpenFile.txt
taskmgr.exe pid: 6016 FOO\alois.mahdal
[...]
Здесь мы 9X_command-line видим, что файл gvim.exe открыт.
Ответ #5
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
Попробуйте Unlocker.
На сайте Unlocker есть отличная 9X_windows диаграмма (прокрутите вниз после перехода 9X_filesystems по ссылке), которая показывает сравнение 9X_filesystems с другими инструментами. Очевидно, что такие 9X_windows-programming сравнения обычно необъективны, поскольку 9X_command-line они обычно пишутся автором инструмента, но 9X_windows-programming на диаграмме, по крайней мере, перечислены 9X_windows-applications альтернативы, чтобы вы могли попробовать 9X_filesystems их сами.
- Unlocker отображает только заблокированные файлы, но не открытые ф ...
Ответ #6
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
Если это файл .dll, вы можете использовать 9X_filesystems приложение командной строки TaskList, чтобы узнать, у 9X_command-line кого он был открыт:
TaskList /M nameof.dll
Ответ #7
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
Есть программа "OpenFiles", вроде как часть 9X_windows-application windows 7. Похоже, она может делать то, что 9X_linux вы хотите. Он может отображать файлы, открытые 9X_windows-application удаленными пользователями (через файловый 9X_windows ресурс), и после вызова "openfiles / Local 9X_windows on" и перезапуск системы, он должен иметь 9X_command-line возможность отображать файлы, открытые локально. Считается, что 9X_windows-programming последнее влечет за собой снижение производительности.
- Я пришел сюда в поисках способа узнать, кто мешает мне удалить папку и избежать перезапуска, и я обнаружил, что нужная мне команда требует настройки конфигурации, которая ... как вы уже догадались ... требует переза ...
Ответ #8
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
Используйте Process Explorer, чтобы найти 9X_windows-applications идентификатор процесса. Затем используйте 9X_command-line Handle, чтобы узнать, какие файлы открыты.
Например, дескриптор 9X_filesystems -p
Мне нравится этот подход, потому что вы 9X_linux используете утилиты от самой Microsoft.
Ответ #9
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
Если щелкнуть правой кнопкой мыши значок 9X_windows-programming «Компьютер» (или «Мой компьютер») и выбрать 9X_windows-application «Управление» во всплывающем меню, откроется 9X_windows-applications консоль управления компьютером.
Там в разделе 9X_command-line «Системные инструменты\Общие папки» вы найдете 9X_filesystem «Открыть файлы». Это, вероятно, близко к 9X_windows-applications тому, что вы хотите, но если файл находится 9X_command-line в сетевой папке, вам нужно будет сделать 9X_command-line то же самое на сервере, на котором находится 9X_linux файл.
- Обратите внимание, что здесь отображаются только общие файлы, открытые другими пользователями сети. Это не помогает найти файлы, открытые в ...
Ответ #10
Ответ на вопрос: Как определить, открыт ли конкретный файл в Windows?
В OpenedFilesView в меню «Параметры» есть пункт «Показать 9X_filesystems сетевые файлы». Возможно, если эта функция 9X_command-line включена, вышеупомянутая утилита пригодится.
-
8
-
3
-
2
-
5
-
10
-
21
-
8
-
7
-
8
-
2
-
7
-
3
-
2
-
4
-
18
-
4
-
8
-
8
-
1
-
10
-
2
-
1
-
1
-
2
-
5
-
2
-
3
-
14
-
4
-
4
-
5
-
4
-
15
-
8
-
5
-
12
-
6
-
4
-
6
-
1
-
8
-
17
-
5
-
7
-
4
-
4
-
1
-
1
-
28
-
2