正文

如何使用VB编写组件来访问win2000 server2006-03-25 20:26:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/stef/11391.html

分享到:

『如何使用 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

阅读(2739) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册