这两天试着在WindowsServer2016上安装ExchangeServer2016,遇到了两个头疼的问题,还好几经搜索加摸索终于把问题解决了,现在把经验分享出来,给遇到同样的问题的人以参考。在WindowsServer2016上安装ExchangeServer2016不再象以往安装系统那样,逮着安装程序直接启动后点下一步这样跟着走就可以无脑完成了,有些需要特别设置的地方:
1. 首先,ExchangeServer2016安装需要域环境,且需要预先安装UCMA4.0运行库,这一点没问题,自己设置一下就可以了,否则规则检查那一块过不去。
2. 第一个坑:直接在WindowsServer2016上安装ExchangeServer2016的原版是不行的。必须使用ExchangeServer2016 CU3以上的版本,CU3就是累积更新3。本人选的直接装CU5。如果使用原版,会卡在规则检查阶段,要求系统安装桌面体验,但WindowsServer2016带GUI安装后的添加服务器功能里是没有桌面体验的,这样就死胡同了。所以必须使用CU3以上的版本。
3. ExchangeServer2016 CU3本身其实是个完整的版本,类似于“ExchangeServer2016 with CU3”。象本人这样的新手一开始看到名字以为只是个更新包,其实直接下载安装就行了。
4. 跨过第一个坑后可以过规则检查阶段进入实际的安装阶段了,安装阶段一共有13阶段,在第7阶段这里还有个坑会出错,错误文本是类似于这样(我就不整理格式了):
--------------------------------------------------
错误: 运行"$error.Clear(); Install-ExchangeCertificate -WebSiteName "Exchange Back End" -services "IIS, POP, IMAP" -DomainController $RoleDomainController -InstallInTrustedRootCAIfSelfSigned $true if ($RoleIsDatacenter -ne $true -And $RoleIsPartnerHosted -ne $true) { Install-AuthCertificate -DomainController $RoleDomainController } "时生成以下错误:"Microsoft.Exchange.Management.SystemConfigurationTasks.AddAccessRuleCryptographicException: 由于引发了加密异常,无法授予网络服务访问包含指纹 C2DBB62E06004C5488A1BF6D0B7F84F7FD9A44D9 的证书的权限。 ---> System.Security.Cryptography.CryptographicException: 拒绝访问。
在 Microsoft.Exchange.Security.Cryptography.X509Certificates.TlsCertificateInfo.CAPIAddAccessRule(X509Certificate2 certificate, AccessRule rule) 在 Microsoft.Exchange.Security.Cryptography.X509Certificates.TlsCertificateInfo.AddAccessRule(X509Certificate2 certificate, AccessRule rule) 在 Microsoft.Exchange.Management.SystemConfigurationTasks.ManageExchangeCertificate.EnableForServices(X509Certificate2 cert, AllowedServices services, String websiteName, Boolean requireSsl, ITopologyConfigurationSession dataSession, Server server, List`1 warningList, Boolean allowConfirmation, Boolean forceNetworkService) --- 内部异常堆栈跟踪的结尾 --- 在 Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl) 在 Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target) 在 Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.EnableForServices(X509Certificate2 cert, AllowedServices services) 在 Microsoft.Exchange.Management.SystemConfigurationTasks.InstallExchangeCertificate.InternalProcessRecord() 在 Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__c() 在 Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelin