『如何使用 VB编写组件来访问win2000 server 和 exchange 2000 server』 这是一个标准LDAP路径字符串LDAP://MainServer.mydomain.com/CN=Mailbox Store (SERVER),CN=First Storage Group,CN=InformationStore,CN=MAINSERVER,CN=Servers,CN=First Administrative Group,CN=Administrative Groups,CN=ExServer,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=com 上面这个路径可以通过ADSI Edit查到。(在W2K Server的安装盘上有一个Supports目录,里面有一个Tools....好像是... 安装即可。) '我所做的操作就是利用iADs以及CDO实现的'首先,在VB的工程中引入'Active DS Type Library'Microsoft CDO For Exchange Management Library'Microsoft CDO For Exchange 2000 Library '代码实现:'定义变量,由于Active DS Type Library不能对Mailbox进行操作,所以在对MailBox操作部分只能使用Microsoft CDO For Exchange Management Library来实现 Dim objUser As IADsUser '定义用户对象Dim objContainer As IADsContainer '定义容器对象Dim objMailbox As CDOEXM.IMailboxStore '定义邮箱对象Dim recipname As String, recip As StringDim objGroup As Object '定义用户组对象Dim Child As Object '在前面的LDAP字符串中,大家也看到了,所有的对象均以"CN=XXX,DC=XXX"这个格式表示,那么用户名就应该是"CN=Cooly"这种格式。 recip = "CN=" & CStr(strLoginName) 'strDomainName是域名,例如Microsoft.com, 在LDAP中的表现形式就是DC=Microsoft,DC=com '下面这句的作用是从指定的服务器中取得用户组中的成员.Set objContainer = GetObject("LDAP://" + strServerFullName + "/CN=Users," & _ strDomainName) '进行判断,如果用户名已经存在于用户组中,那么将无法添加这个用户,这时候就要中断或跳出创建用户的操作过程For Each Child In objContainer If LCase(Right(Child.Name, Len(Child.Name) - 3)) = LCase(strLoginName) Then Exit Function End IfNext '下面是在用户组这个容器中创建指定的用户Set objUser = objContainer.Create("User", recip)'设置账号在AD中的登录名称objUser.Put "samAccountName", strLoginName '比较麻烦啊,有登录名称,显示名称,姓,名,等等。If Trim(strLastName) <> "" Then objUser.Put "sn", strLastNameEnd IfIf Trim(strLastName) <> "" Then objUser.Put "givenName", strFirstNameElse objUser.Put "givenName", strLoginNameEnd IfobjUser.Put "userPrincipalName", strLoginNameobjUser.Put "displayName", CStr(strFirstName) + CStr(strLastName) '这句比较有用,设置账号的属性,66048指本账号永不过期objUser.Put "userAccountControl", 66048 '保存设置objUser.SetInfo '为刚新建的账号设置密码objUser.SetPassword strPassword '设置该账号为可用objUser.AccountDisabled = False '下面是将新建的用户添加到指定的组中。 '首先,从指定的服务器中取得组对象。Set objGroup = GetObject("LDAP://" + strServerFullName & _ "/CN=" + CStr(strDefaultGroupName)) & _ ",CN=Users," + strDomainName) '然后将指定的账号添加到这个组中 objGroup.Add ("LDAP://" + strServerFullName + "/CN=" & _ CStr(strLoginName) + ",CN=Users," + strDomainName) '下面就是如何给一个AD账号创建邮箱了'前提:必须有Exchange Server '首先为邮箱对象指定一个用户(也就是我们刚刚创建的那个账号)Set objMailbox = objUser '创建邮箱使用CreateMailbox这个方法,URL就是我们在最上面提到的LDAP字串 objMailbox.CreateMailbox LDAP路径字符串(根据需要自己设计变量) '保存账号信息objUser.SetInfo '设置是否使用邮箱默认限制objMailbox.EnableStoreDefaults = False '下面是邮箱的三个限制,单位是KBobjMailbox.StoreQuota = 50000objMailbox.OverQuotaLimit = 50000objMailbox.HardLimit = 50000 '保存修改后的账号信息objUser.SetInfo

评论