在组织单位中创建新用户

Terry Adams 被 Fabrikam 销售组织所聘用。 他的直接下属为 Patrick Hines。

如以下代码示例所示,企业管理员 Joe Andreshak 将为他创建一个新帐户。

Dim salesOU as IADsContainer
Set salesOU = GetObject("LDAP://OU=Sales,DC=Fabrikam,DC=COM")
Set usr = salesOU.Create("user", "CN=Terry Adams")
usr.Put "sAMAccountName", "terryadams"
usr.Put "userPrincipalName", "terryadams@fabrikam.com" 
usr.Put "title" "Marketing Manager"
usr.SetInfo

usr.SetPassword "seahorse"
usr.AccountDisabled = False
usr.SetInfo

创建新用户时,必须指定 sAMAccountName。 它是用户类的必需属性。 必须先设置所有必需属性,然后才能创建对象实例。 如果没有为新用户指定 sAMAccountName,则会自动生成。

创建新用户时,必须在本地缓存中设置所有必需属性,然后才能调用 IADs.SetInfo 方法。

作为管理员,Joe 可使用 IADsUser.SetPassword 方法来分配 Terry 的密码。 在调用 IADs.SetInfo 方法之前,IADsUser.SetPassword 方法将不起作用。

然后,Joe 可通过将 IADsUser.AccountDisabled 属性设为 FALSE 来启用该用户帐户。

以下代码示例演示了如何将 Terry 设为 Patrick 的经理。

Set usr = GetObject("LDAP://CN=patrickhines,OU=Sales,DC=Fabrikam,DC=COM")
usr.Put "manager", "CN=Terry Adams,OU=Sales,DC=Fabrikam,DC=COM"
usr.SetInfo

你可能想知道,如果 Terry 更改其名字、转到其他组织或离开公司时会怎样。 谁负责维护此经理直接下属链接? 有关详细信息以及此问题的解决方案,请参阅重新组织。 由于 Active Directory 架构可进行扩展,因此可为对象建模,从而包含类似的经理直接下属式关系。

在继续执行下一任务之前,请查看一个代码示例,而该示例展示了 Joe 如何查看 Terry 的直接下属。

Set usr = GetObject("LDAP://CN=Terry Adams,OU=Sales,DC=Fabrikam,DC=COM")
reports = usr.GetEx ("directReports")

For each directReport in reports
    Debug.Print directReport
Next

在此代码示例中,Patrick 将显示为 Terry 的直接下属,即使从未修改过 directReports 属性。 Active Directory 会自动执行此操作。

对目录而言,属性可具有单个或多个值。 由于 directReports 具有多个值,因此可通过查看架构来获取此信息;因此,使用 IADs.GetEx 方法更容易,而该方法会返回值的数组,而不考虑是返回单个还是多个值。

借助 Active Directory 用户和计算机管理单元,可在用户属性页面上查看直接下属和经理关系。

将用户添加到组