Exchange服务器之C#操作AD及Exchange Server总结
白羽 2018-07-26 来源 :网络 阅读 2711 评论 0

摘要:本文将带你了解Exchange服务器之C#操作AD及Exchange Server总结,希望本文对大家学Exchange有所帮助

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,下面我们继续在上一节创建的项目中编写代码,为该用户开启邮箱。
新建一个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("//exchange服务器IP/PowerShell"),
                "//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命令    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Exchange频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 2 不喜欢 | 0
看完这篇文章有何感觉?已经有2人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程