本地获取服务器上的文件,获取本地网络服务器上所有UNC共享文件夹的列表

private DataTable GetSharedFolderAccessRule()

{

DataTable DT = new DataTable();

try

{

DT.Columns.Add("ShareName");

DT.Columns.Add("Caption");

DT.Columns.Add("Path");

DT.Columns.Add("Domain");

DT.Columns.Add("User");

DT.Columns.Add("AccessMask");

DT.Columns.Add("AceType");

ManagementScope Scope = new ManagementScope(@"\.rootcimv2");

Scope.Connect();

ObjectQuery Query = new ObjectQuery("SELECT * FROM Win32_LogicalShareSecuritySetting");

ManagementObjectSearcher Searcher = new ManagementObjectSearcher(Scope, Query);

ManagementObjectCollection QueryCollection = Searcher.Get();

foreach (ManagementObject SharedFolder in QueryCollection)

{

{

String ShareName = (String) SharedFolder["Name"];

String Caption = (String)SharedFolder["Caption"];

String LocalPath = String.Empty;

ManagementObjectSearcher Win32Share = new ManagementObjectSearcher("SELECT Path FROM Win32_share WHERE Name = '" + ShareName + "'");

foreach (ManagementObject ShareData in Win32Share.Get())

{

LocalPath = (String) ShareData["Path"];

}

ManagementBaseObject Method = SharedFolder.InvokeMethod("GetSecurityDescriptor", null, new InvokeMethodOptions());

ManagementBaseObject Descriptor = (ManagementBaseObject)Method["Descriptor"];

ManagementBaseObject[] DACL = (ManagementBaseObject[])Descriptor["DACL"];

foreach (ManagementBaseObject ACE in DACL)

{

ManagementBaseObject Trustee = (ManagementBaseObject)ACE["Trustee"];

// Full Access = 2032127, Modify = 1245631, Read Write = 118009, Read Only = 1179817

DataRow Row = DT.NewRow();

Row["ShareName"] = ShareName;

Row["Caption"] = Caption;

Row["Path"] = LocalPath;

Row["Domain"] = (String) Trustee["Domain"];

Row["User"] = (String) Trustee["Name"];

Row["AccessMask"] = (UInt32) ACE["AccessMask"];

Row["AceType"] = (UInt32) ACE["AceType"];

DT.Rows.Add(Row);

DT.AcceptChanges();

}

}

}

}

catch (Exception ex)

{

MessageBox.Show(ex.StackTrace, ex.Message);

}

return DT;

}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值