繁体   English   中英

使用.net从共享文件夹列出权限

[英]List permissions from a shared folder using .net

我一直在考虑创建一个列出服务器共享文件夹的应用程序,即:输入主机,然后它将给我该服务器共享文件夹的列表,并给我可以访问该服务器的用户和组。夹。

我知道我可以从以下位置获取共享文件夹的列表:
注册表:
HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ LanmanServer \\ Shares
WMI:
选择*从win32_share

来自以下方面的安全性:
注册表:
HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ LanmanServer \\ Shares \\ Security

有关它的更多信息:
http://technet.microsoft.com/zh-cn/library/cc781716%28v=ws.10%29.aspx

我可以通过打开\\\\ 10.10.10.5这样的远程共享来获取该信息,并且它将在资源管理器中显示共享文件夹的列表,如果我可以访问,那么我可以简单地右键单击并单击属性,那么它将给我什么我需要,但是我需要编程方式。

本地解决方案: http : //www.indented.co.uk/2009/02/19/reading-ntfs-and-share-security-with-vbscript/

远程解决方案:

strComputer = WScript.Arguments(0)
Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMI.ExecQuery("Select * from win32_share where type='0'")
For Each i In colItems
strDir = i.path
WScript.Echo "Share Name: " & i.name
strDir = Replace(strDir,"\","\\")
Set colItems = objWMI.ExecQuery("Select * from win32_logicalFileSecuritySetting WHERE Path='" & strDir & "'",,48)
for each objItem in colItems
If objItem.GetSecurityDescriptor(wmiSecurityDescriptor) Then
WScript.Echo "GetSecurityDescriptor failed"
DisplayFileSecurity = False
WScript.Quit
End If

For each wmiAce in wmiSecurityDescriptor.DACL
strACE = wmiAce.Trustee.Domain & "\" & wmiAce.Trustee.Name
'If instr(strACE,".") then
wscript.echo " " & strACE
'end If
Next
Next
Next

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM