Войти

Показать полную графическую версию : поиск дескрипторов и их завершение


veka13
17-05-2021, 16:59
Здравствуйте, озадачили тут на работе написанием скрипта, который по введенному в консоль имени файла производит поиск открытых на него дескрипторов, предлагает их завершить. Не делал такого ни разу, не знаю с какой стороны подступиться.

Iska
17-05-2021, 17:11
veka13, уже написан: Handle - Windows Sysinternals | Microsoft Docs (https://docs.microsoft.com/en-us/sysinternals/downloads/handle).

greg zakharov
17-05-2021, 17:16
...уже написан...То есть вам даже неинтересно, хочет вопрошающий разобраться самостоятельно с сутью задачи? Зачем вы из него сразу куёте скрипт-кидди?

veka13
17-05-2021, 18:06
Хотелось бы разобраться, все таки придется этой командной строкой заняться в итоге, жизнь таки толкает.

Iska
17-05-2021, 19:18
greg zakharov, тут нужен как минимум Ваш уровень. Не мой.

greg zakharov
17-05-2021, 19:41
Хотелось бы разобраться, все таки придется этой командной строкой заняться в итоге, жизнь таки толкает.Тогда вам придётся спуститься до уровня NTAPI в случае, если речь о Windows (чай ведь pwsh кроссплатформенное ныне решение), конкретней - NtQuerySystemInformation и\или NtQueryInformationProcess. Чтобы не дублировать код, могу посоветовать изучить код функции Get-PsHandle (https://www.powershellgallery.com/packages/pstools/8.0.1.11/Content/usr%5CGet-PsHandle.ps1) модуля pstools (https://www.powershellgallery.com/packages/pstools/8.0.1.11), в нём используется NtQueryInformationProcess. В случае NtQuerySystemInformation из полученного буфера придётся искать "вручную" хэндлы для нужного процесса. Хэндл с типом File, собственно, и будет вашим "клиентом". Что касается непосредственно закрытия хэндл(-а, -ов) - дублирование его в текущий процесс должно быть с флагом DUPLICATE_CLOSE_SOURCE, в противном случае CloseHandle покажет фигу и ничего не закроет.

Iska, вы о чём?

Iska
18-05-2021, 00:33
Iska, вы о чём? »
О том, что я давно не программист.

veka13
18-05-2021, 04:51
Начнем тогда с начала, как реализовать в скрипте функцию запроса файла чтобы его потом подсунуть Handle. Вторым пунктом как этот запрос подставить Handle и третий пункт как реализовать запрос на прекращение запроса процессов ?

Iska
18-05-2021, 06:25
greg zakharov, ну, как — всё ещё думаете, что автор хочет самостоятельно разобраться с сутью задачи?

veka13
18-05-2021, 06:49
Автор хочет и параллельно активно гуглит, но пока ничего не понятно. Я не касался этой темы даже близко.

greg zakharov
18-05-2021, 10:58
...как реализовать в скрипте функцию запроса файла чтобы его потом...То есть вам непонятно, что такое параметр функции? Тогда вам прежде лучше ознакомиться со справочным руководством.

всё ещё думаете, что автор хочет самостоятельно разобраться с сутью задачи?Хоть и пессимист по натуре, стараюсь верить, что далеко не все безнадёжны.




© OSzone.net 2001-2012