请教如何获取共享文件和应用程序是由哪个系统帐户创建的

木偶兄 2012-04-10 05:15:59
小弟最近在做一个系统信息扫描的程序,现在遇到两个问题,请教各位大虾:

1、用NetShareEnum获取到了当前机器上的有共享属性的文件,请问如何获取这个共享文件的共享属性设置时间和设置帐户,即此共享文件是在什么时候由哪个Windows系统帐户设置为共享的?

2、类似第一个问题,利用注册表和WMI获取到了当前系统所有已安装程序列表,请教如何获取到指定程序是由哪个Windows系统帐户安装的?

小弟分不多,希望大家发扬精神帮帮忙!
...全文
272 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
木偶兄 2012-04-13
  • 打赏
  • 举报
回复
谢谢各位帮忙!
木偶兄 2012-04-13
  • 打赏
  • 举报
回复
算了,结了吧!看来或许根本没有这些信息或者获取方式暂时未知!
fly4free 2012-04-13
  • 打赏
  • 举报
回复
切换后,不是本地看,而是在别的机器上通过网上邻居。
不过,如你刚刚试的那个结果的话,那就是我记错了,“依稀”嘛~

那admin 能 取消、修改、重设置 admin2 设置的共享吗(或相反的情况)?(默认账户设置情况)

我提到这个是想说,我觉得 你提到的那个属性对于Windows系统的运行没有什么实际意义,所以没有。在此之上的功能扩展,就只能自行二次开发实现了。

不过,再试试Win2k3?看看 server 系统对于用户间共享的访问控制有没有什么不一样的?(我现在就是win2k3,并且网上邻居中没有看到你所说的属性~)
木偶兄 2012-04-13
  • 打赏
  • 举报
回复
Xp下多个管理员帐户之间设置的共享文件可以互相查看和取消共享,在03下试了一下也是一样,那这样看来很有可能Windows没有记录这个信息了!谢谢各位了!

还有另外两个呢?共享文件的共享属性设置时间、特定应用程序的安装帐户是不是也一样根本就没有,无法获取呢?
木偶兄 2012-04-12
  • 打赏
  • 举报
回复
回14楼:

不会吧,我试的结果是增加一个普通的受限用户User和一个管理员帐户Admin2,user下的确看不到admin和admin2下设置的共享属性,但是也没有办法给一个文件或文件夹设置共享,也就是受限用户无法设置共享文件??

而在admin和admin2两个管理员帐户下设置的共享文件都是可以互相看见的,Xp环境,其他暂时没试
fly4free 2012-04-12
  • 打赏
  • 举报
回复
如果Windows账户UserA在一个公共分区设置某共享,并且该账户没有设置个人数据加密(WinXP)
那么Administrator账户有没有权限取消修改重设置该共享文件夹的权限?



PS:
现在我没法试,我依稀记得以前用其他账户设置的共享,后来重启换回管理员账号后发现共享没了,重新登录前一个账号后,共享出现。(不知道这是我的幻觉还是什么?)
fly4free 2012-04-12
  • 打赏
  • 举报
回复
这就不知道了。
你说扫描共享文件属性。那么,通过“开始->运行,然后输入\\192.168.0.39\\shareddir 等类似的路径,最后回车”这样的方式也可以看到你所扫描的东西吗?
如果是这些东西,你右键目标文件->属性->安全 标签页->高级,会弹出新对话框->所有者标签页,看看有什么东西。
如果不是,我只能帮顶了。
Lactoferrin 2012-04-12
  • 打赏
  • 举报
回复
那就算了,巧妇难为无米之炊
木偶兄 2012-04-12
  • 打赏
  • 举报
回复
新增加了一个共享文件看了一下,事件查看器里面没有增加任何信息
Lactoferrin 2012-04-12
  • 打赏
  • 举报
回复
它很可能就不存在
Lactoferrin 2012-04-12
  • 打赏
  • 举报
回复
运行eventvwr看看
木偶兄 2012-04-12
  • 打赏
  • 举报
回复
回6楼:

你说的是获取文件所有者,我试了,只能获取文件的所有者,不能获取共享属性的设置者,也就是说我换一个用户设置某个用户为共享文件,这个文件的所有者不会变,不过还是谢谢你!

回8楼:

就是因为我目前没有在系统中明显找到这些信息,所有才来请教大虾们有没有这样的信息及怎么获取?有些信息我没有在系统中找到不一定它就不存在,大家再帮帮忙,客户催的紧啊
木偶兄 2012-04-12
  • 打赏
  • 举报
回复
回4楼,试过了,利用得到的安全描述符,GetSecurityDescriptorOwner得到的SID都是NULL,不知道什么原因?
向立天 2012-04-12
  • 打赏
  • 举报
回复
你要的这些信息先不说编程实现
你在系统中能看到么
Lactoferrin 2012-04-12
  • 打赏
  • 举报
回复
我觉得没有保存这样的信息
fly4free 2012-04-11
  • 打赏
  • 举报
回复
最后一个,安全描述符
通过这个是否能获取到 owner ?
木偶兄 2012-04-11
  • 打赏
  • 举报
回复
回2楼,貌似不行哦,NetShareGetInfo和NetShareEnum的参数结构差不多,level参数最详细的结构体也就是SHARE_INFO_502了,但是没有我要的信息啊!


typedef struct _SHARE_INFO_502 {
LPWSTR shi502_netname;
DWORD shi502_type;
LPWSTR shi502_remark;
DWORD shi502_permissions;
DWORD shi502_max_uses;
DWORD shi502_current_uses;
LPWSTR shi502_path;
LPWSTR shi502_passwd;
DWORD shi502_reserved;
PSECURITY_DESCRIPTOR shi502_security_descriptor;
} SHARE_INFO_502, *PSHARE_INFO_502, *LPSHARE_INFO_502;
Eleven 2012-04-11
  • 打赏
  • 举报
回复
试试NetShareGetInfo,看看MSDN文档
fly4free 2012-04-11
  • 打赏
  • 举报
回复
不要激动,我是来关注的。

不过,估计也得需要足够的权限。

2,641

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧