前言
System.DirectoryServices.DirectoryEntry组件提供了对Active Directory的访问。本文以两个简单的小程序为例,阐述了如何利用此组件查看网络的各节点的信息。 DirectoryEntry组件提供了Path属性,根据文档,此属性指定了目录服务中用来访问对象的对象名,其格式如下:
protocol://servername:port number/distinguished name
此语句的第一部分定义了访问将使用的协议,如
LDAP: (Lightweight Directory Access Protocol)
IIS: (提供IIS元数据来读及配置Internet Infomation Server)
WinNT: (提供在非常有限的性能下对Windows NT域的访问)
NDS: (提供对Novell Directory Service的访问)
等等(详细信息清参考MSDN)。
因此我们构造一个DirectoryEntry实例,将它的Path设为"WinNT:",以通过对它的所有子项的枚举来发现网络上的所有域(以及工作组)。这样,再对所发现的域(以及工作组)的子项进行枚举,就可以发现网络上的所有计算机,结合WMI发现机器上的共享资源。
C#实现代码
以下为Ladon的EnumShare代码,自动获取当前域,并枚举域内计算机以及获取机器开放共享资源。
string strDomain;
string strComputer;
string strShare;
Console.WriteLine("Load EnumShare");
DirectoryEntry root = new DirectoryEntry("WinNT:");

本文介绍了如何利用C#的DirectoryEntry组件访问Active Directory,通过设置Path属性为'WinNT:'来枚举网络上的域和工作组,进一步获取所有计算机以及它们的共享资源。提供的Ladon EnumShare代码实现全自动获取和展示当前域内的计算机及其共享信息。

2393

被折叠的 条评论
为什么被折叠?



