I need to find a way to determine what files on a shared folder are being accessed, and by whom. Commands like "Net Files" and "Net Session" can give this information, as well as PSFile.exe in SysInternals, but I cannot figure out how to do this programmatically. I have found a way to determine who is accessing a share via WMI, but it does not show what file is being accessed. Does anyone know how to do this in C / C++ / C#? Any and all help will be greatly appreciated.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
NetFileEnum level 3 seems to be what you're looking for.
回答2:
You can use ADSI (Active Directory Service Interfaces) , some time ago I wrote an article about this topic Using Delphi and ADSI to enumerate local and remote shared resources
the samples are written in delphi but you can use this article as a guide to ADSI.
To List the opened resources like folders and files you must use the IADsFileServiceOperations interface and the Resources function which return a collection of the open resources for the service.