概要

本分步指南介绍了如何使用 System.DirectoryServices 命名空间和 CDO for Exchange Management (CDOEXM) 创建一个启用了邮箱的用户

需要

1:安装了 Exchange 2000 的一个基于 Microsoft Windows 2000 的域,配置如下:

2:在此代码运行的电脑上有 Microsoft Exchange 2000 系统管理工具

创建新的 C# 程式

1: 在 Visual C# .NET 中,新建一个名为 MBTest 的 C# 控制台程式

2:添加一个System.DirectoryServices 的.net引用

3:添加一个到Microsoft CDO for Exchange Management的COM引用

4:代码如下:

CodeusingSystem;usingCDOEXM;usingSystem.DirectoryServices;namespaceMBTest

{classClass1

{

[STAThread]staticvoidMain(string[] args)

{stringdefaultNC="DC=GROUPPOWER,DC=local";//根据域来改变值stringalias="dingfeng";stringfullName="wudingfeng";stringpassword="TestMb123.";//注意密码复杂度stringdomainName="grouppower.local";/*string homeMDB = "CN=邮箱存储(服务器名),CN=第一个存储组,"

+ "CN=InformationStore,CN=服务器名,CN=Servers,"

+ "CN=第一个管理组,CN=Administrative Groups,"

+ "CN=第一个组织,CN=Microsoft Exchange,CN=Services,"

+ "CN=Configuration,DC=域名,DC=域名后缀";*/stringhomeMDB="CN=邮箱存储(client),CN=第一个存储组,CN=InformationStore,CN=client,CN=Servers,CN=第一个管理组,CN=Administrative Groups,CN=Grouppower,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=grouppower,DC=local";

DirectoryEntry container=null, user=null;

CDOEXM.IMailboxStore mailbox;//创建具有用户组权限的用户和密码container=newDirectoryEntry("LDAP://cn=users,"+defaultNC);

user=container.Children.Add("cn="+fullName,"user");

user.Properties["sAMAccountName"].Add(alias);

user.CommitChanges();

user.Invoke("SetPassword",newobject[] { password });

user.Properties["userAccountControl"].Value=0x200;//ADS_UF_NORMAL_ACCOUNTuser.CommitChanges();

mailbox=(IMailboxStore)user.NativeObject;//Obtain the IMailboxStore interface, create the mailbox, and commit the changes.mailbox.CreateMailbox(homeMDB);

user.CommitChanges();return;

}

}

}

5:更改 Main 函数的 TODO 部分中的变量,使他们包含针对您的域的适当的值

6:编译此项目,然后运行

7:启动 Microsoft 管理控制台 (MMC) 中的“Active Directory 用户和电脑”管理单元,确认是否已在域中创建了新帐户。您会在“用户”容器中看到此新用户。如要检查此用户是否启用了邮箱,请查看该用户的属性中是否出现了“Exchange”选项卡,连同“Exchange 常规”选项卡上是否为该用户列出了一个邮箱存储

代码说明

创建新的 DirectoryEntry

此代码演示了如何绑定到容器(在本例中为“用户”容器),连同如何在该容器中创建一个新用户。不要忘记表示新用户名的“cn=”项:

container = new DirectoryEntry("LDAP://cn=users," + defaultNC);user = container.Children.Add("cn=" + fullName, "user");

在新用户上配置属性

1:给 sAMAccountName 赋一个值。这是个必需属性;假如您不指定值,就不会创建用户帐户

2:因为您已提供了必需属性,所以要调用 CommitChanges 将新用户保存到目录中

3:调用 IADs::SetPassword 以配置密码。调用 CommitChanges 之后必须这样做

4:通过修改 userAccountControl 属性启用用户:

Codeuser.Properties["sAMAccountName"].Add(alias);

user.CommitChanges();

user.Invoke("SetPassword",newobject[] { password });//This enables the new user.user.Properties["userAccountControl"].Value=0x200;//ADS_UF_NORMAL_ACCOUNTuser.CommitChanges();

创建新邮箱

1:为获得 IMailboxStore 接口,请将 DirectoryEntry.NativeObject 强制转换为此类型。假如电脑上没有安装 CDOEXM,此强制转换在运行时将不能成功.

2:调用 CreateMailbox 方法,并将一个有效的可分辨名称传递给您的 Exchange 组织中的一个邮箱存储,调用 DirectoryEntry 上的 CommitChanges 以保存此新邮箱:

Code//Obtain the IMailboxStore interface, create the mailbox, and commit the changes.mailbox=(IMailboxStore)user.NativeObject;

mailbox.CreateMailbox(homeMDB);

user.CommitChanges();

疑难解答

1:您必须在域中有适当的权限才能创建用户和邮箱。通常情况下,要在一个基于 Windows 2000 的域中创建一个启用了邮箱的用户,您必须是该域的 Windows 2000 域管理员组中的一名成员。假如此代码在不是基于 Exchange 2000 Server 的电脑上运行,您必须在该电脑上安装 Exchange 2000 系统管理工具。假如不这样做,则 CDOEXM 将不可用,而且向 IMailboxStore 的强制转换将导致返回 InvalidCastException 响应:

An unhandled exception of type 'System.InvalidCastException' occurred in MBTest.exe

Additional information:Specified cast is not valid

2:假如您调用 IMailboxStore.CreateMailbox 时收到一条错误信息,请确认您传递给此方法的参数是不是您的组织中一个有效的邮箱存储。假如不是,您将收到类似于下面的错误信息:

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in MBTest.exe bitsCN.Com

Additional information:There is no such object on the server.

java创建exchange邮箱_创建Exchange邮箱用户相关推荐

  1. mac怎么查看gitlab的注册邮箱_单位企业邮箱是什么?公司邮箱怎么申请注册?

    随着线上办公的流行,使用企业邮箱的公司越来越多.企业邮箱不仅可以规范化管理工作,也可以用作沟通工具使用.最近首次接触企业邮箱的朋友问,不知道单位企业邮箱是什么,也不清楚公司邮箱怎么申请注册,那么本文就 ...

  2. 详解:阿里邮箱_阿里企业邮箱_阿里邮箱企业版

    阿里邮箱是阿里云自主研发的,基于飞天平台自主研发的云原生分布式邮箱系统,阿里邮箱提供免费版.标准版.尊享版和集团版,企业邮箱版本不同支持的账号数也不同,共享网盘容量和个人网盘容量均不同,阿里云百科来详 ...

  3. eclipse创建springboot项目_创建一个 Spring Boot 项目,你会几种方法?

    我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 42W+,如下图: 2017 年由于种种原因,就没有 ...

  4. 24小时临时邮箱_免费临时邮箱和接码平台

    临时邮箱,接受邮箱验证 10 分钟邮箱 http://www.bccto.me/ 10 分钟邮箱 https://temp-mail.org/zh/ 10 分钟邮箱 https://10minutem ...

  5. 绝地求生自定义服务器购买,绝地求生怎么创建自定义房间_创建自定义房间方法教程...

    本文给大家带来绝地求生创建自定义房间的方法教程,绝地求生开放了自定义系统,玩家可以自主创建房间了.有些玩家不知道怎么创建,一起来了解一下吧,希望能帮到大家. 绝地求生创建自定义房间教程: - 进入自定 ...

  6. java创建response对象_创建一个HttpResponse对象

    创建一个HttpResponse对象 HttpResponse类实现了javax.servlet.http.HttpServletResponse.跟随它的是一个叫做 HttpResponseFaca ...

  7. java linux u盘_创建启动U盘或移动硬盘 - 基于Fedora 14搭建高效稳定的Java开发环境_Linux教程_Linux公社-Linux系统门户网站...

    创建启动U盘或移动硬盘 在这里我们选择Fedora 14 x64为例,其它版本安装过程大同小异.因光驱逐渐淘汰,这里我们选择以U盘或移动硬盘作为安装方式(如果选择光驱方式安装,可以跳过此节,直接将下载 ...

  8. java开发安装程序_创建java开发环境安装包

    一.安装SetupFactory7 解压setupfactorzxb_cp.rar运行安装程序 二.打开Setup Factory 7.0 创建新工程-->使用向导 选择源文件文件夹 选择安装时 ...

  9. java工作流 表设计_创建activiti工作流所需23张表

    Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布设计好的流程定义,并通过api进行流程调度. Activiti的创始人也就是JBPM(也是一个优秀的BPM引擎)的创始人, ...

  10. java 网易的yeah邮箱_网易163邮箱、yeah邮箱横向对比

    网易目前163.126仍在4.0版本向5.0的逐渐过渡当中,yeah邮箱在8月8日网易5.0版新闻发布会前已上线使用版本,目前,用户对新版yeah邮箱的反应很好. 下面,就让我们一起对比看一下网易4. ...

最新文章

  1. -Bash: Unzip: Command Not Found解决方法 安装unzip
  2. 《自然语言处理入门》不是 NLP 学习路上的万能药
  3. 5g局域网传输速度_这个路由太牛了吧?,三步搭建局域网,接上U盘就是NAS
  4. 8月下旬国内域名注册商净增量Top10
  5. 两数相加python代码实现(leetcode2)
  6. COMMCONFIG进行配置的WIN32 API
  7. c语言树写入文件,如何安全地实现文件树遍历(C语言)
  8. poi设置列宽自适应_Sentinel 系统自适应限流原理剖析与实战指导
  9. 跨浏览器开发工作小结
  10. CocoaPods集成ShareSDK
  11. python从入门到精通-python从入门到精通视频(全60集)免费高速下载
  12. c语言程序设计教程上海交通,C语言程序设计教程 交通学习文学.pdf
  13. 使用Sencha cmd安装extjs6
  14. 2000坐标系和WGS84的关系
  15. canvas实现pc端画板
  16. C语言程序设计——用户密码输入与判断
  17. c语言发送短信,c语言短信.doc
  18. python算法一:枚举法
  19. 用Python端对端数据分析识别机器人“僵尸粉”
  20. Win10无法卸载/重装IE11浏览器的解决方法

热门文章

  1. IP变更导致redis集群不可用解决办法
  2. c语言实训自我总结报告,C++实训总结报告
  3. 如何做员工满意度调查问卷?
  4. 解决Android logcat: Unexpected EOF!方法指南
  5. Vue2.0 响应式原理 通俗易懂
  6. 计算机休眠下睡眠的不同点是什么,电脑休眠和睡眠的区别是什么
  7. 三角形的内切圆和外接圆半径公式
  8. CRM客户管理系统(Java)
  9. 2021年与 Linux 有关的几件大事
  10. 接触式IC卡和非接触式IC卡有什么区别?