PDA

Показать полную графическую версию : Поиск процесса по используемому файлу


madeinussr
05-07-2017, 12:38
Хотелось бы методами командной строки выяснить какой процесс использует файл. Собственно частично решение уже сам нашёл:

wmic process where "commandline like '%test.txt%'" get name

или если сразу убить

wmic process where "commandline like '%test.txt%'" call terminate

Но этот способ работает не всегда, т.к. не у всех программ отображается открытый файл в параметрах командной строки. Например, если открыть файл не блокнотом, а в MS Word (у меня Office 2003), то эта команда уже не сработает. Команда wmic process >process.txt в таком случае вообще не выводит строк содержащих test.txt. В tasklist тоже ничего подходящего не нашёл. В Process Explorer можно видеть, какие файлы использует процесс во время работы. И не только файл который открывает, но и временно созданные, файлы операционной системы, свои библиотеки и т.д. Есть ли способ получить эту информацию в командной строке?

Iska
05-07-2017, 13:04
1. Download Windows Server 2003 Resource Kit Tools from Official Microsoft Download Center (https://www.microsoft.com/en-us/download/details.aspx?id=17657).
Oh.exe - Open Handles

This command-line tool shows the handles of all open windows. You can also constrain OH to only show information relating to a specific process, object type, or object name. This feature is useful for finding which process has a file open when a sharing violation occurs. To function properly, OH must enable a kernel option which maintains a linked list of all objects by object type. If not set, OH enables this option and notifies you that you must reboot before OH will function. After rebooting, OH can display information.
Не рекомендую из-за выделенного.

2.
openfiles.exe /?
Не рекомендую по тем же причинам.

3. Handle (https://technet.microsoft.com/en-us/sysinternals/handle.aspx).

4. Наверняка что-нибудь уже сваяли под PowerShell (не проверялось).

madeinussr
05-07-2017, 13:16
А решения, чтобы батник сразу мог это выяснить без установки дополнительного ПО и перезагрузки системы, начиная с Windows XP SP3, не существует?

Извиняюсь, что ввожу новые условия по ходу.

Iska
05-07-2017, 13:37
Мне таковых способов не известно.




© OSzone.net 2001-2012