#c# #c #c #wmi #share
#c# #c #c #wmi #Поделиться
Вопрос:
Мне нужно найти способ определить, к каким файлам в общей папке осуществляется доступ и кем. Такие команды, как «Сетевые файлы» и «Сетевой сеанс», могут предоставить эту информацию, а также PSFile.exe в SysInternals, но я не могу понять, как это сделать программно. Я нашел способ определить, кто обращается к общему ресурсу через WMI, но он не показывает, к какому файлу осуществляется доступ. Кто-нибудь знает, как это сделать на C / C / C #? Любая помощь будет высоко оценена.
Ответ №1:
Вы можете использовать ADSI (интерфейсы службы Active Directory), некоторое время назад я написал статью на эту тему Using Delphi and ADSI to enumerate local and remote shared resources
примеры написаны на delphi, но вы можете использовать эту статью в качестве руководства по ADSI.
Чтобы перечислить открытые ресурсы, такие как папки и файлы, вы должны использовать интерфейс IADsFileServiceOperations и функцию Resources, которые возвращают коллекцию открытых ресурсов для службы.
Ответ №2:
Похоже, что вы ищете NetFileEnum уровня 3.