C#操作AD及Exchange Server总结(二)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#操作AD及Exchange Server总结(二),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2712字,纯文字阅读大概需要4分钟。
内容图文
转http://www.cnblogs.com/renzh/p/AD-Exchange.html
上一节C#操作AD及Exchange Server总结(一)写了对AD的操作,新建AD用户后,通常都需要为此用户开启Exchange邮箱,接下来写如何远程操作Exchange。
三、对Exchange Server操作
操作exchange会用到新的DLL,需要安装Windows power shell,安装后在路径:C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\v1.0(测试机为64位)下找到System.Management.Automation.dll,在项目中引入。
1、为AD用户新建邮箱
上一节我们在AD中加入并启用了一个用户Employee01,下面我们继续在上一节创建的项目中编写代码,为该用户开启邮箱。
PowerShell支持远程管理
新建一个ExchangeMange.cs文件,添加下面的方法:
public void AddExchangeUser(string identity, string alias) { string runasUsername = @"contoso\管理员账号"; string runasPassword = "管理员密码"; SecureString ssRunasPassword = new SecureString(); foreach (char x in runasPassword) { ssRunasPassword.AppendChar(x); } PSCredential credentials = new PSCredential(runasUsername, ssRunasPassword); var connInfo = new WSManConnectionInfo(new Uri("http://exchange服务器IP/PowerShell"), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credentials); connInfo.AuthenticationMechanism = AuthenticationMechanism.Basic; var runspace = RunspaceFactory.CreateRunspace(connInfo); var command = new Command("Enable-Mailbox"); command.Parameters.Add("Identity", identity); command.Parameters.Add("Alias", alias); runspace.Open(); var pipeline = runspace.CreatePipeline(); pipeline.Commands.Add(command); var results = pipeline.Invoke(); Console.WriteLine("通道错误数:" + pipeline.Error.Count); runspace.Dispose(); } AddExchangeUser
代码解释:
- 首先需要生成管理员凭据,此管理员必须有管理exchange服务器的权限
- 生成一个连接类型,传入exchange服务器IP、将要使用的Scheme以及管理员凭据
- 打开一个命令空间,创建管线通道,传入要运行的powershell命令,执行命令
- 释放连接资源
这段代码对应的powershell命令相当于本地运行的“Enable-Mailbox -Identity ‘rzh.com/CompanyA/Employee01‘ -Alias ‘Employee01‘”
编写测试代码:
static void Main(string[] args) { ExchangeMange manage = new ExchangeMange(); Console.WriteLine("Start to enable user maibox..."); try { manage.AddExchangeUser("Employee01@contoso.com", "Employee01"); } catch (System.Management.Automation.RuntimeException ex) { Console.WriteLine("enable user maibox error..."); Console.WriteLine(ex); Console.ReadLine(); } Console.WriteLine("Finish to enable user maibox..."); Console.ReadLine(); } 测试代码
此时运行代码会报出下面的错误
错误信息很详细,说明了出错的原因,服务器不支持客户端请求的身份验证机制。
需要对客户端和服务器端进行一些配置。
2、配置客户端和服务器
客户端配置:
运行gpedit.msc进入本地组策略管理器,计算机配置》管理模版》Windows组件》WinRM》WinRM客户端
启用允许为加密通信,启用受信任的主机并添加exchange服务器IP地址到TrustedHostsList
服务器端配置:
启用IIS基本身份验证
SSL设置中不要求SSL
再次运行代码
用以上示例可以看到如何利用System.Management.Automation的类型和方法对Exchange进行操作的整个过程,其他的操作唯一不同的就是command命令,只要我们知道Powershell的命令,就可以替换上面代码中的Command段,进行操作。
三、总结归纳
1、AD操作总结
- 了解DirectoryEntry类型
- 学会创建AD各种类型的方法
- 学会设置AD类型的属性
2、Exchange操作总结
- 了解System.Management.Automation下的类型和方法
- 配置客户端和服务器端
- 掌握powershell命令
原文:http://www.cnblogs.com/love201314/p/4936814.html
内容总结
以上是互联网集市为您收集整理的C#操作AD及Exchange Server总结(二)全部内容,希望文章能够帮你解决C#操作AD及Exchange Server总结(二)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。