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 |评论网友评论
该篇文章没有任何评论。
发表评论
内容
取消回复
推荐文章
最近我们是不是在讨论较多的是关于K12教育的问题,培训机构由于资本的介入确实让家长更为焦虑,对于这样的整改我们还是很支持的。实际上,在云服务器市场中,我们也看到内卷和资本的力量,各大云服务商竞争也是相当激烈,更不用说个人和小公司服务商日子确实不好过。今天有看到UCloud发布的夏季促销活动,直接提前和双十一保价挂钩。这就是说,人家直接在暑假的时候就上线双十一的活动。早年的双十一活动会提前一周到十天...
DediPath 商家成立时间也不过三五年,商家提供的云服务器产品有包括KVM和OPENVZ架构的VPS主机。翻看前面的文章有几次提到这个商家其中机房还是比较多的。其实对于OPENVZ架构的VPS主机以前我们是遇到比较多,只不过这几年很多商家都陆续的全部用KVM和XEN架构替代。这次DediPath商家有基于OPENVZ架构提供低价的VPS主机。这次四折的促销活动不包括512MB内存方案。第一、D...
速云怎么样?速云,国人商家,提供广州移动、深圳移动、广州茂名联通、香港hkt等VDS和独立服务器。现在暑期限时特惠,力度大。广州移动/深圳移动/广东联通/香港HKT等9折优惠,最低月付9元;暑期特惠,带宽、流量翻倍,深港mplc免费试用!点击进入:速云官方网站地址速云优惠码:全场9折优惠码:summer速云优惠活动:活动期间,所有地区所有配置可享受9折优惠,深圳/广州地区流量计费VDS可选择流量翻...