C#怎样给AD用户建立Exchange邮箱(不用CDOEXM) (转)_涅磐飞升的空间_百度空间
C#怎样给AD用户建立Exchange邮箱不用CDOEXM 转 _涅磐飞升的空间_百度空间用户名: 密码: 登录注册涅磐飞升的空间主页
博客相册个人档案好友
查看文章
C#怎样给AD用户建立Exchange邮箱不用CDOEXM 转
2010-08-31 23:48
这几天也被C DOE XM狠狠折磨了一把按照下面MSDN的标准方法添加鸟对CDOEXM的引用而且俺的cdo.dl l,cdoexm.dl l都是exchange2000工作服务器上copy下来的然后用下面MSDN提供的代码报错始终报错一条道走到黑的报错说是
System.Runtime. InteropServices.COMException (0x80072030) :在服务器上没有这样一个对象。mailbox = (IMailboxStore)user.NativeObject;mai lbox.CreateMai lbox(homeMDB) ;user.CommitChanges() ;
我可以确定我的hom eMDB扩展属性值绝对不会错因为那是用微软自家windows系统的vbs脚本直接导出到文本文件的 vbs脚本如下后面还要用它导出homeMTA和msExchHomeS erv erNames t rB ran chN ame="OU名1,OU=OU名0,O U=公司OU名"
'上面的几层路径的ou下面只有一个有邮箱的userstrDC="gdmailclus1" ' IIS服务器名s trDomain="DC=mai l,DC=xxxx" 'AD服务器DN
s trLDAP="<LDAP://"+strDC+"/OU="+st rBranchName+", "+s trDoma in+">"
Set oLDAPConn = CreateObject("AdoDB.Connection")oLDAPConn.Provider = "AdsDSOObject"oLDAPConn.open
Set oCmd = CreateObject("AdoDB.Command")oCmd.ActiveConnecti on = oLDAPConnoCmd.CommandText =strLDAP+"; (objectCategory=Person) ;Di stinguishedName,mail;SubTree"
Set oResult = oCmd.Execute
Set fso =
Wscript.CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile("C:\Documents and
Settings\szadmin\桌面\homeMDB. txt")strGetUser="LDAP://"+strDC+"/"+oResult.Fields(0)
Set oUser = GetObject(strGetUser)
'wscript.echostrGetUser+vbcrl f+"name:"+oUser.name+vbcrl f+"sAMAccountName:"+oUser. sAMAccountName+vbcrlf+"serverName:"+oUser. serverNa
me+vbcrlf+"Mail:"+oUser.Mailf.Wr iteLine(oUser.homeMDB)
'wscript.echo oUser.homeMDB
'wscript.echo oUser.homeMTA
'wscript.echo oUser.mailNickName
'wscript.echo oUser.msExchUserAccountControl
'wscript.echo oUser.msExchHomeServerName
'wscript.echo oUser.mDBUseDefaults
'wscript.echo oUser.mailf.close
而且我又没法在exchange工作服务器上装开发环境没法调试只好上网找方法了。后来在网上终于搜到原来CDOEXM在C#下就是不好用有转换那一步出错的调了VB.net的一个getobject可方法就ok也有像我一样的问题的说是要整个改成VB.net就好了。天呢我至此彻底晕倒对微软的佩服再次上升鸟一层都是自家的东东能搞成这样。 。
幸好后来在一个跟帖里头找到了方法原来根本不需要CDOEXM这个烂东东就可以完成建exchange邮箱的工作直接写几个AD扩展属性就可以鸟代码如下user.Properti es["homeMDB"] .Value=homeMDB;user.Properti es["homeMTA"] .Value=homeMTA;user.Properties["mailNickName"] .Add(dr["UserID"] .ToString()) ;user.Properties["msExchUserAccountControl"] .Add(0) ;
user.Properti es["msExchHomeServerName"] .Add("/o=MAIL001/ou=mailadmin/cn=Configuration/cn=Servers/cn=Mail-SERVER") ;user.Properti es["mDBUseDefaults"] .Add("TRUE") ;user.CommitChanges() ;user是一个你找到的DirectoryEntry对象实例 dr是输入的数据集中的一个DataRowhomeMDB、 homeMTA和ms Ex chHome ServerName可以用上面的vb s脚本从服务器获得脚本中的s trBran chName改成适合你的
我的这三个参数如下供参考private string homeMDB =
"CN=BE-SG2-MDB1,CN=GDMAIL-SG2,CN=I nf ormat i onStore,CN=GDMAILEXCH,CN=Servers,CN=第一个管理组,CN=Admi nistrative
Groups,CN=xxxxORG,CN=Microsoft
Exchange,CN=Services,CN=Conf iguration,DC=mail,DC=xxxx";private string homeMTA = "CN=Microsoft
MTA,CN=GDMAILEXCH,CN=S erv ers,CN=第一个管理
组,CN=Administrative
Groups,CN=xxxxORG,CN=Microsoft
Exchange,CN=Services,CN=Conf iguration,DC=mail,DC=xxxx";private string msExchHomeServerName =
"/o=GMCCORG/ou=GDMAILEXAG/cn=Conf i gurat ion/cn=Servers/cn=GDMAILEXCH";
试过在我们的工作环境下不能同时写mai l属性会引发约束冲突异常所以之后要通过另外一个vbs脚本批量改下默认邮件地址就可以。
改默认邮件地址的VBSs trBranchName="深圳分公司"s trBranchDoma in="sz. "strAll="gd.xxxx. com"strDC="gdmailclus1"s trDomain="DC=mai l,DC=xxxx"s trLDAP="<LDAP://"+strDC+"/OU="+st rBranchName+", "+s trDoma in
Set oLDAPConn = CreateObject("AdoDB.Connection")oLDAPConn.Provider = "AdsDSOObject"oLDAPConn.open
Set oCmd = CreateObject("AdoDB.Command")oCmd.ActiveConnecti on = oLDAPConnoCmd.CommandText =
strLDAP+"; (objectCategory=Person) ;Di stinguishedName,mail;SubTree"
Set oResult = oCmd.Executewscript.echo oResult.Recordcountwhile not oResult.EOFstrGetUser="LDAP://"+strDC+"/"+oResult.Fields(0)
Set oUser = GetObject(strGetUser)
'wscript.echo oUser.name
OldMai l=oUser.mai l
I f (Len(Ol dMai l)>0) Then
OldPrimaryEmai l=Join(oUser.proxyAddresses, "!")iNotChange=inStr(Ol dPr imaryEmai l, "SMTP:"+oUser. samAccountName+"@"+strBranchDomain+strAl l)
If (iNotChange=0) Then
OldPrimaryEmai l=Rep lace(OldPrimaryEmai l, "SMTP:", "smtp:")OldPrimaryEmai l=Rep lace(OldPrimaryEmai l, "smtp:"+oUs er. samAccountName+"@"+strBranchDomai n+s trA l l, "SMTP:"+oUs er. samAccountName+"@"+strBranchDomai n+s trAl l)
Newmail=oUser. samAccountName+"@"+strBranchDomain+strAl l
'wscript.echo "mail-:"+NewMail
'wscript.echo "proxy-:"+o ldPrimaryEmai lstrProxy=Split(OldPrimaryEmail, "!")oUser.msExchPoliciesExcluded="{26491CFC-9E50-4857-861B-0CB8DF22B5D7}"
' oUser.msExchPol iciesExcluded=VBNulloUser.Mail=NewmailoUser.ProxyAddresses=strProxyoUser.SetInfo
End If
End IfoResult.MoveNext
Wendwscript.echo "done"
上一篇>> c#创建exchange邮箱问题,请教高. . . 下一篇>>CDOEXM操作转k ane boy
类别asp.net | |添加到搜藏|分享到i贴吧|浏览(474) |评论()
网友评论
该篇文章没有任何评论。
发表评论
内 容
取消回复
推荐文章
韩国少女高价卖尿原汁原味价格合理世界上最著名的菲尔人格测试
把身上的名牌脱掉你什么都不是以为洗白张柏芝 自己就不是**
艾云怎么样?艾云是一家去年年底成立的国人主机商家,商家主要销售基于KVM虚拟架构的VPS服务,机房目前有美国洛杉矶、圣何塞和英国伦敦,目前商家推出了一些年付特价套餐,性价比非常高,洛杉矶套餐低至85元每年,给500M带宽,可解奈飞,另外圣何塞也有特价机器;1核/1G/20G SSD/3T/2.5Gbps,有需要的朋友以入手。点击进入:艾云官方网站艾云vps促销套餐:KVM虚拟架构,自带20G的防御...
适逢中国农历新年,RAKsmart也发布了2月促销活动,裸机云、云服务器、VPS主机全场7折优惠,新用户注册送10美元,独立服务器每天限量秒杀最低30.62美元/月起,美国洛杉矶/圣何塞、日本、香港站群服务器大量补货,1-10Gbps大带宽、高IO等特色服务器抄底价格,机器可选大陆优化、国际BGP、精品网及CN2等线路,感兴趣的朋友可以持续关注下。裸机云新品7折,秒杀产品5台/天优惠码:Bare-...
PQ.hosting怎么样?PQ.hosting是一家俄罗斯商家,正规公司,主要提供KVM VPS和独立服务器,VPS数据中心有香港HE、俄罗斯莫斯科DataPro、乌克兰VOLIA、拉脱维亚、荷兰Serverius、摩尔多瓦Alexhost、德国等。部分配置有变化,同时开通Paypal付款。香港、乌克兰、德国、斯洛伐克、捷克等为NVMe硬盘。香港为HE线路,三网绕美(不太建议香港)。免费支持wi...