利用DirectoryEntry组件来查看网络所有电脑及用户

 "N年前",在一个MOSS2007开发的项目上,客户提出有这样一个需求,有没有办法列出局域网中的所有计算机及用户呢?

 办法当然会有很多种喽...KAKIM当然喜欢的是简洁易懂而又能实现功能的代码,所以后来就用了DirectoryEntry类

 创建了一个DirectoryEntry实例,将它的Path设为"WinNT:"(可以后面跟domain,如WinNT:\\your domain),以通过对它的所有子项的递归枚举来发现网络上的所有域(以及工作组)。就可以发现网络上的所有计算机及用户名

 

ContractedBlock.gif ExpandedBlockStart.gif 代码
 
   
private void GetChildren(DirectoryEntry entry, TreeNode entryNode)
{
if (entry.Children != null )
{
foreach (DirectoryEntry de in entry.Children)
{
if (de.SchemaClassName == " User " ||
de.SchemaClassName
== " Computer " ||
de.SchemaClassName
== " Domain " )
{
TreeNode _node
= new TreeNode(de.Name);
entryNode.Nodes.Add(_node);
GetChildren(de, _node);
}


}
}
}

private void GetNTUser()
{
try
{
using (DirectoryEntry root = new DirectoryEntry( " WinNT: " ))
{
TreeNode node
= new TreeNode(root.Name);
treeView1.Nodes.Add(node);
GetChildren(root, node);
}
}
catch
{ }
}
private void Form1_Load( object sender, EventArgs e)
{
GetNTUser();
}

所以,搜出结果如下图

2010042700115348.png 

 

关于DirectoryEntry 类的用法,不防参考一下MSDN,这里就不重复了

http://msdn.microsoft.com/zh-cn/library/system.directoryservices.directoryentry%28VS.80%29.aspx

 

 

 

转载于:https://www.cnblogs.com/kakimsun/archive/2010/04/27/1721678.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值