卸载Exchange Servers 2016失败

本文我们快速的分享一个卸载Exchange Server 2016过程中遇到的一个问题。

问题的场景是,当我们因为某个原因,需要卸载刚刚安装好的Exchange 2016时,未成功卸载,相关的信息如下图:

从上图中我们可以看出,主要的错误信息是:

运行"$error.Clear();

$dllFile = join-path $RoleInstallPath "bin\ExSMIME.dll";

$regsvr = join-path (join-path $env:SystemRoot system32) regsvr32.exe;

start-SetupProcess -Name:"$regsvr" -Args:"/s /u `"$dllFile`"" -Timeout:120000;

"时生成以下错误:"Microsoft.Exchange.Configuration.Tasks.TaskException: 进程执行失败,退出代码为 5。

接下来,我们看看处理这个问题的过程:

通过上面的错误,起初我们以为是注册dll出现了问题,所以尝试使用regsvr32.exe来解决,但是并没有用,甚至出现了无法注册的报错。然后就进入了长时间的资料搜索的和尝试的过程。

终于在Exchange产品组在2016年9月发布的当季Exchange 更新的博文评论中找到一个解决方法:

To solve this uninstall interruption: move original ExSMIME.dll in different location and rename copy exmime.dll as ExSMIME.dll. Than run again Setup.exe /mode:Uninstall /IAcceptExchangeServerLicense to finish uninstall Exchange.

也就是说,解决这个问题的一个方法是:

把现有Exchange安装目录的Bin子目录下的ExSMIME.dll文件移走,并将Exchange安装包中的exmime.dll文件复制到现有Exchange安装目录的Bin子目录下,并且改名为ExSMIME.dll,然后再尝试执行一次Setup.exe /IAcceptExchangeServerLicenseTerms /mode:Uninstall。

请大家注意上述方法中,两个dll文件名是不一样的,有一个多一个字母S,我刚开始也曾错误认为是同一个文件名,第一次尝试时以为这个方法无效。还是陪我一起加班的同志提醒发现而注意的。

最后,感谢陪我加班到凌晨的同志,哈哈!

分享到