创建组织单位

有了域对象后,便可开始创建组织单位。 Fabrikam 有两个部门:销售和生产。 该公司计划聘请两名 Windows 2000 管理员来管理每个部门。 Joe Worden 作为企业管理员将在 Fabrikam 域下创建两个新的组织单位。 通过创建组织单位,Joe 可将多个对象组合在一起,并让其他人管理这些对象。 以下代码示例将创建销售组织单位 (OU)。

Dim dom as IADsContainer
Set dom = GetObject("LDAP://DC=Fabrikam,DC=Com")
Set salesOrg = dom.Create("organizationalUnit", "OU=Sales")
salesOrg.Put "description", "Sales Headquarter,SF"
salesOrg.Put "wwwHomePage", "https://fabrikam.com/sales"
salesOrg.SetInfo

IADsContainer.Create 方法会接受类名和新对象的名称。 此时,该对象不会提交到 Active Directory。 但是,客户端上将存在 ADSI/COM 对象引用。 通过使用此 ADSI 对象,可使用 IADs.Put 方法来设置或修改属性。 IADs.Put 方法会接受属性名称和特性的值。 但是,不会向目录提交任何内容,而所有内容均会在客户端上进行缓存。 调用 IADs.SetInfo 方法时,会将变更(在本例中为对象创建和属性修改)提交到目录。 这些变更会进行事务处理,因而你会看到新对象以及已设置的所有属性,或是看不到任何对象。

此外,还可嵌套组织单位。 以下代码示例假定销售部门会进一步划分为“东部”和“西部”区域。

Set east = salesOrg.Create("organizationalUnit", "OU=East")
east.SetInfo

这也适用于西部区域。

若要直接绑定到销售组织中的东部区域,则应指定可分辨名称。

Set east = GetObject("LDAP://OU=East,OU=Sales,DC=Fabrikam,DC=COM")
Debug.Print east.Get "description"
east.Put "wwwHomePage", "https://fabrikam.com/sales/east"

如果已绑定到父对象(销售),则可使用子对象的相对名称从父对象绑定到子对象(东部)。

Set east = salesOU.GetObject("organizationalUnit", "OU=East")

若要确保已创建这些对象,请使用 Active Directory 用户和计算机 MMC 管理单元来查看新的组织单位。

将现有用户移至该组织单位