当我们在部署Lync Server 2010或2013的时候,可能有的时候没有进行服务器备份,但CMS又出现了故障或被意外脱机(强制推掉虚拟机等)。此时如果我们再进行Lync Server部署的话会出现很严重的问题,因为我们此时将无法找到CMS,并且也无法通过Install-CsDatabase之类的命令创建新的数据库。并且我们在发布拓扑时会出现错误,无论我们是否已经把旧的MCS服务器离线、退域等。

而我们在发布拓扑时往往收到的消息是创建中央管理存储失败。

强制卸载Lync Server脱机的CMS并在新位置重建_第1张图片

并且错误的原因是无法连接到我们旧的前端服务器,也就是旧的承载CMS的服务器,所有的这种执行方式都是通过RPC形式来调用,而此时我们旧的CMS服务器已经离线或无法连接、已经被强制卸载,所以我们肯定是没办法连接到的。

强制卸载Lync Server脱机的CMS并在新位置重建_第2张图片

然而此时我们做的最多的是通过Move-CsManagementServer命令来强制移动CMS数据库,这也是我们在进行Lync Server 2010升级至Lync Server 2013所做的事情。然而通过这种方式也只会得到无法读取数据库的错误。

强制卸载Lync Server脱机的CMS并在新位置重建_第3张图片

第一次遇到这个问题时可能会比较纳闷,因为我们已经发现了问题:我们没有按照正常操作或我们已经没办法按照正常操作来卸除旧的Lync Server标准版服务器或承载CMS的SQLServer服务器。但是我们在部署新的Lync Server时会发现我们没办法进行。这是由于Lync Server在AD DS中使用服务控制点 (SCP) 来记录计算机所提供的服务,所以我们单方面的不考虑AD DS直接卸除、推掉承载CMS的服务器,那么必然会出现这个进退两难的情况。

在安装 Lync Server 时将创建一个 SCP,为中央管理存储提供用于维护 Lync Server 数据的位置信息。需要访问该数据库的所有Lync Server服务器连接到 Active Directory,并使用 SCP 中包含的信息帮助这些计算机查找正确的计算机和 SQL Server 的正确实例。

在安装 Lync Server 时自动创建的 CMS SCP,通常情况下我们并不需要删除该 SCP,因为在正常情况下如果我们删除该 SCP,所有Lync Server服务器将无法找到数据库。但是,在我们已经无法联系到CMS服务器或CMS服务器已经出现意外停机的情况下,我们需要删除 SCP才能够重建CMS。为执行此操作,可以使用 Remove-CsConfigurationStoreLocation命令。

强制卸载Lync Server脱机的CMS并在新位置重建_第4张图片

执行该命令后,可以删除AD DS中存储的CMS SCP。除了删除 SCP 外,此命令还会将有关该操作成功(或失败)的信息记入日志文件 C:\Logs\Store_Location.html。为了创建该日志文件,此命令使用 Report 参数,后跟应将信息记入的日志文件的路径。如果该文件已存在,运行此命令时将覆盖其内容。如果该文件不存在,则运行此命令时将创建该文件。

Remove-CsConfigurationStoreLocation -Report C:\Logs\Store_Location.html

安装 Lync Server 时,会自动创建中央管理存储的 SCP。如果需要将该数据库移至其他计算机或者需要将该数据库移至 SQL Server 的不同实例,则将需要更新相应的服务控制点。可使用 Set-CsConfigurationStoreLocation命令执行此任务。运行此 cmdlet 时,Set-CsConfigurationStoreLocation 将在 Active Directory 中搜索由 SqlServer 参数指定的计算机。然后,该 cmdlet 将存储位置设置为该计算机的 FQDN。默认情况下需要有RTCUniversalServerAdmins权限。 具体日命令参数请参考以下:

Set-CsConfigurationStoreLocation -SqlServerFqdn  -SqlInstanceName 

在完成SCP的重建后,我们就可以继续发布拓扑到新的CMS位置,从而完成对已经脱机的CMS强制卸载,并在新的SQLServer或标准版服务器上重建CMS。在此之后我们就可以重新的发布拓扑,拯救我们不完整的Lync Server环境,也可以部署新的Lync Server版本,从而完整的重建一个Lync Server系统。