Imports LzmTW.DirectoryServices ''' <summary> ''' ldapPath专为简化AD域组织单元、用户、计算机、网络打印机的节点管理而设计。 ''' 对于一个确定的域,ldapPath仅仅关心关键标识部分,即(CN|OU=...)集合。 ''' 在容器中管理各个节点以及在导入导出节点集合时,ldapPath简洁明了。 ''' 此为示例。示例后贴出主要代码,全部代码计划以资源下载提供。 ''' ''' 仅供参考。水如烟(http://www.cnblogs.com/LzmTW,http://blog.youkuaiyun.com/lzmtw) ''' 20090309 ''' </summary> Public Class LdapPathDemo Public Sub Test1() Dim ldap As New ldapPath("www.youkuaiyun.com", True) '包含主机 Console.WriteLine(ldap.ShortDomainController) '域youkuaiyun.com的主机 'www '或 ldap = New ldapPath("youkuaiyun.com", False) '不含主机 ldap.ShortDomainController = "www" '置主机 ldap.Path = "CN=水如烟,OU=VB,OU=NET,OU=优快云用户" Console.WriteLine(ldap.Path) '当前节点路径 'LDAP://www.youkuaiyun.com/CN=水如烟,OU=VB,OU=NET,OU=优快云用户,DC=csdn,DC=net ldap.Name = "lzmtw" '更改当前节点名 Console.WriteLine(ldap.Path(ldapType.IncludeDomainName)) '不含主机的节点路径 'LDAP://youkuaiyun.com/CN=lzmtw,OU=VB,OU=NET,OU=优快云用户,DC=csdn,DC=net ldap.ParentDistinguishedName = "OU=C#,OU=NET,OU=优快云用户" '更改容器路径 Console.WriteLine(ldap.Path(ldapType.OnlyLocation)) '只含关键标识部分的节点路径 'LDAP://CN=lzmtw,OU=C#,OU=NET,OU=优快云用户,DC=csdn,DC=net ldap = ldap.Parent.Parent.Parent '第三级容器实例 Console.WriteLine(ldap.Path) 'LDAP://www.youkuaiyun.com/OU=优快云用户,DC=csdn,DC=net Console.WriteLine(ldap.IsRoot) '是否为根 'False ldap = ldap.Parent '再上一级 Console.WriteLine(ldap.Path) 'LDAP://www.youkuaiyun.com/DC=csdn,DC=net Console.WriteLine(ldap.IsRoot) '是否为根 'True End Sub Public Sub Test2() '节点关键标识在不同域中的传递 Dim ldapForDomain1 As New ldapPath("www.youkuaiyun.com") ldapForDomain1.Path = "CN=水如烟,OU=VB,OU=NET,OU=优快云用户" 'ldapForDomain1 .Path 为LDAP://www.youkuaiyun.com/CN=水如烟,OU=VB,OU=NET,OU=优快云用户,DC=csdn,DC=net Dim ldapForOther As New ldapPath("www.cnblogs.com") ldapForOther.Path = ldapForDomain1.Path Console.WriteLine(ldapForOther.Path) 'LDAP://www.cnblogs.com/CN=水如烟,OU=VB,OU=NET,OU=优快云用户,DC=cnblogs,DC=com '或 ldapForOther.Path = ldapForDomain1.ShortDistinguishedName Console.WriteLine(ldapForOther.Path) '同上