这篇博客的目的:根据亲身项目经历,总结对AD及Exchange Server的操作,包括新建AD用户,设置密码,为AD用户创建邮箱等。
本文完全原创,转载请说明出处,希望对大家有用。
文档目录:
- 测试环境及需求简述
- 对AD操作
- 引入DLL及方法简述
- 新增OU或Security Group
- 新建AD User
- 添加用户到组或从组中删除用户
- 用户信息更新
- Enable/Disable用户账号
- 对Exchange Server操作
- 为AD用户新建邮箱
- 配置客户端和服务器
- 总结归纳
一、测试环境及需求简述
1、测试环境
服务器:windows server 2008R2
Exchange:Exchange Server 2010 sp1
开发工具:Visual Studio 2010
一台exchange服务器+一台AD服务器+一台承载测试程序的服务器
2、需求简述
- 根据提供的信息创建对应的OU
- 根据提供的用户信息新建AD用户
- 根据提供的信息修改AD用户
- 为AD用户
二、AD操作
1、引入DLL及方法简述
MS提供了远程操作AD的DLL:System.DirectoryServices(添加引用中有);
其中,我们使用LDAP协议访问AD,LDAP翻译为轻量目录访问协议。
在使用的时候,需要注意一些问题:
- 如果在WEB应用中使用,在数据量大的时候回产生超时的问题,建议采取其他方式如MS MQ等方式处理信息,避免超时的问题。
- 使用LDAP会有安全风险,毕竟通过网络传输用户凭证并不是很安全,最好是运行在企业内网。
DirectoryServices其实提供了其他很多操作,如对IIS的操作,对本地用户的操作,有兴趣的可以了解下。
2、新增OU或Security Group
首先新建一个控制台应用程序
添加服务引用:
在项目中新建一个ADHelper.cs用来提供AD操作的公用方法
public class ADHelper { /// <summary> /// 创建连接 /// </summary> /// <returns></returns> public static DirectoryEntry GetDirectoryEntry() { DirectoryEntry de = new DirectoryEntry(); de.Path = "LDAP://AD服务器地址/OU=CompanyA,DC=contoso,DC=com"; de.Username = @"contoso\管理员账号"; de.Password = "管理员密码"; return de; } /// <summary> /// 带有一个参数的创建连接重载 /// </summary> /// <param name="DomainReference"></param> /// <returns></returns> public static DirectoryEntry GetDirectoryEntry(string DomainReference) { DirectoryEntry entry = new DirectoryEntry(DomainReference, "管理员账号", "管理员密码", AuthenticationTypes.Secure); return entry; } }