C#怎样给AD用户建立Exchange邮箱(不用CDOEXM) (转)_涅磐飞升的
空间_百度空间C# how to AD users to establish a Exchangemailbox (not CDOEXM) (to) _ Nirvana soaring space _ Baiduspace
C#how to AD users to establish a Exchange mailbox (not CDOEXM)(turn) space Baidu space _Username: Password: _ Nirvanasoaring soaring space home page login Nirvana
Blogs, albums, personal files, good friends
View Article
How does C#create Exchange mailboxes (not CDOEXM) for AD users?2010-08-31 23:48
These days have also been CDOEXM torture a, in accordance withthe following standard method of MSDN, add bird reference toCDOEXM, and my cdo.dll, cdoexm.dll are exchange
2000 work on the server copy down, and then use the followingMSDN to provide the code, reported wrong, always reported wrong,a road to the black newspaper error! Say yes:
System.Runtime. InteropServices.COMException (0x80072030) :there is no such object on the server.
Mailbox = (IMailboxStore) user.NativeObject;
Mailbox.CreateMailbox (homeMDB) ;
User.CommitChanges () ;
I can be sure that the homeMDB extended attribute value mustbe wrong, because it is derived directly from Microsoft' s ownwindows vbs script system to a text file, vbs script, behindwill use the export homeMTA and msExchHomeServerName
StrBranchName= "OU name 1, OU=OU name 0, OU= company OU"""There is only one mailbox user below the Ou of the upper layersof the path. "
StrDC= "gdmailclus1"' IIS server name
StrDomain= "DC=mail, DC=xxxx", 'AD server, DN
S trLDAP=, "<LDAP://", "+s trDC+", "/OU=", "+st rBranchName+","+strDomain+" >"
Set oLDAPConn = CreateObject ("AdoDB.Connection")
OLDAPConn.Provider = "AdsDSOObj ect""
OLDAPConn.open
Set oCmd = CreateObject ("AdoDB.Command")
OCmd.ActiveConnecti on = oLDAPConn
OCmd.CommandT ext =
"StrLDAP+"; (objectCategory=Person) ; Distingui shedName; mail;SubTree"
Set oResult = oCmd.Execute
Set FSO=Wscript.CreateObject ("Scripting.FileSystemObject")"Set f = fso.CreateTextFile" ("C:\Documents and"
Sett ings\szadmin\ desktop \homeMDB.txt ""
StrGetUser= "LDAP://", "+strDC+" / "+oResult.Fields (0)"Set oUser = GetObject (strGetUser)
'wscript.echo
StrGetUser+vbcrlf+ "name:", "+oUser.name+vbcrlf+",
"sAMAccountName:", "+oUser. sAMAccountName+vbcrlf+",
"serverName:", "+oUser. serverName+vbcrl f+", "Mai l:",
"+oUser.Ma i l"
F.Wr iteLine (oUs er.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.mail
F.close
Moreover, I can not work in the exchange server on thedevelopment environment, can not debug, and had to find a wayonline. Later on the Internet finally found, the originalCDOEXM in C# is not good, the conversion step error, adjustinga GetObject VB.net method on the OK, I also like the same problem,that is to the changed VB.net well.
God, I completely fainted at this point, the admiration ofMicrosoft, once again rising birds, are their own East and West,can do so. .
Fortunately, later found in a thread inside the method, theoriginal need not CDOEXM this rotten Dongdong, you can completethe construction of exchange mailbox work, directly write a fewAD extensions properties can be birds, the code is as follows: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=mai ladmin/cn=Configurat ion/cn=Servers/cn=Mai l-SERVER") ;
User.Properti es["mDBUseDefaults", "] .Add" ("TRUE") ;
User.CommitChanges () ;
User is a DirectoryEntry object instance that you find, and Dris a DataRow in the input data set
HomeMDB, homeMTA, and msExchHomeServerName can be obtainedfrom the server using the above vbs script, and thestrBranchName in the script is changed to suit you
These three parameters of mine are as follows:
Private, string, homeMDB =
"CN=BE-SG2-MDB1, CN=GDMAI L-SG2, CN=I nformat i onSt ore,
CN=GDMAILEXCH, CN=Servers, CN=, the first management group,CN=Administrative
Groups, CN=xxxxORG, CN=Mi crosof t
Exchange, CN=Services, CN=Conf i gurat ion, DC=mai l, DC=xxxx";
Private string homeMTA = "CN=Microsoft"
MTA, CN=GDMAILEXCH, CN=Servers, CN=, the f irst managementgroup, CN=Admini strative
Groups, CN=xxxxORG, CN=Mi crosof t
Exchange, CN=Services, CN=Conf i gurat ion, DC=mai l, DC=xxxx";Private, string, msExchHomeServerName =
"/o=GMCCORG/ou=GDMAILEXAG/cn=Conf i gurat ion/cn=Servers/cn=GDMAILEXCH. "";
Trying to write the mail attribute in our work environment doesnot cause a constraint conflict exception, so you can changethe default mail address in batches by another VBS script.Change the default mail address of VBS:
StrBranchName= "Shenzhen branch""
S trBranchDoma in= "s z. ""
StrAll= "gd.xxxx.com""
StrDC= "gdmailclus1""
StrDomain= "DC=mai l, DC=xxxx. ""
S trLDAP=, "<LDAP://", "+s trDC+", "/OU=", "+st rBranchName+",
"+strDomain+" >"
Set oLDAPConn = CreateObject ("AdoDB.Connection")
OLDAPConn.Provider = "AdsDSOObj ect""
OLDAPConn.open
Set oCmd = CreateObject ("AdoDB.Command")
OCmd.ActiveConnecti on = oLDAPConn
OCmd.CommandT ext =
"StrLDAP+"; (objectCategory=Person) ; Distingui shedName; mail;SubTree"
Set oResult = oCmd.Execute
Wscript.echo oResult.Recordcount
While not oResult.EOF
StrGetUser= "LDAP://", "+strDC+" / "+oResult.Fields (0)"Set oUser = GetObject (strGetUser)
'wscript.echo oUser.name
OldMai l=oUser.mai l
If (Len (OldMail) >0) Then
OldPrimaryEmai l=Join (oUser.proxyAddres ses, "!")
INotChange=inStr (OldPrimaryEmai l, SMTP: , +oUser. )
“@” strbranchdomain sAMAccountName + + +稻草
如果inotchange = 0然后oldprimaryemai l =取代ol dprimaryemai l “即” “即” oldprimaryemail =取代oldprimaryemail ”即“+ ouser。sAMAccountName + “@” + strbranchdomai n +稻草 ”即“+ ouser。sAMAccountName + “@” + strbranchdoma in +稻草newmai l = ouser。 sAMAccountName + “@” + strbranchdomain +稻草
“wscript. echo”邮件 “+ newmail
“wscript. echo”代理 “+ oldprimaryemailstrproxy =分裂oldprimaryemail “ ” ouser。 msexchpoliciesexcluded
= “{ 26491cfc-9e50-4857-861b-0cb8df22b5d7 }”
“ouser msexchpoliciesexcluded = vbnull。ouser邮件= newmai l。
ouser ProxyAddresses = strproxy。ouser. setinfo
最后如果
最后如果oresult.movenext
走wscript.echo “完成”
上一篇> > C #创建交换邮箱问题请教高„下一篇> > c doexm操作转kaneboy
类别 A SP.NET | |添加到搜藏|分享到我贴吧|浏览474 |评论网友评论
该篇文章没有任何评论。
发表评论
内容
取消回复
推荐文章
HostKvm又上新了,这次上架了2个线路产品:俄罗斯和香港高防VPS,其中俄罗斯经测试电信CN2线路,而香港高防VPS提供30Gbps攻击防御。HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。俄罗斯VPSCPU:1core内存:2G...
青云互联怎么样?青云互联是一家成立于2020年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、韩国服务器、香港服务器、美国云服务器,香港安畅cn2弹性云限时首月五折,15元/月起;可选Windows/可自定义配置,让您的网站高速、稳定运行。点击进入:青云互联官方网站地址青云互联优惠码:八折优惠码:ltY8sHMh (续费同价)青云互联香港云服务器活动...
关于HostDare服务商在之前的文章中有介绍过几次,算是比较老牌的服务商,但是商家背景财力不是特别雄厚,算是比较小众的个人服务商。目前主流提供CKVM和QKVM套餐。前者是电信CN2 GIA,不过库存储备也不是很足,这不九月份发布新的补货库存活动,有提供九折优惠CN2 GIA,以及六五折优惠QKVM普通线路方案。这次活动截止到9月30日,不清楚商家这次库存补货多少。比如 QKVM基础的五个方案都...