Why won’t Setup use my updated topology?
Imagine you desperately want to get Microsoft Lync Server 2010 up and running. You quickly run Setup.exe, Prepare first Standard Edition server, install Topology Builder, use Topology Builder to create the topology and then perform steps 1 and 2 of the four steps for Installing or Updating Lync Server System:
- Install Local Configuration Store
- Setup or Remove Lync Server Components
- Request, Install or Assign Certificates
- Start Services
However after step 2 you realize you need to make a change to the topology. You startup Topology Builder, make the change and Publish Topology. You then re-run step 2, but it is not picking up the changes you made to the topology, even if Publish Topology succeeded. Why?? Let me explain.
Step 1 performs, among other things, installation & creation of the SQL Express instance rtclocal hosting the local replica of CMS (for a discussion about this see here) and loading of the configuration (including the topology) from the CMS master. When you ran this it loaded the initial copy of the topology you published the first time you ran Topology Builder.
When you ran Topology Builder the second time and did the second Publish you updated the CMS master. However you haven’t updated the local replica created in Step 1. After the first run of this step the Run button in the Setup UI is disabled and you can’t re-run it. Step 2 of the installation always reads from the local replica of CMS and it is therefore not picking up the changes you made to the topology. On an operational Lync Server the local replica is updated via CMS replication, but the server you are working on is not operational yet. So what can you do?
The easiest option is to start up Lync Server Management Shell on the server and issue the following two cmdlets:
- Export-CsConfiguration –FileName <ZIP file to store the exported configuration>
- Import-CsConfiguration –FileName <ZIP file storing the exported configuration> –LocalStore
Export-CsConfiguration will read the configuration (including the updated topology) from the CMS master and store it in a ZIP file. The Import-CsConfiguration with the –LocalStore switch will import the configuration in the local replica of CMS (in reality doing a manual CMS replication). After performing the two cmdlets you should be able to re-run step 2 above and it will pick up your topology changes.
Comments
Anonymous
December 16, 2010
Cool! I've being searched for this solution for hours. Thanks for sharing.Anonymous
January 11, 2011
Worked like a charge to remove server roles I didn't want to include in the initial deployment.Anonymous
January 27, 2011
worked like a charm! Thanks a lot. I was looking for a solution for hours, too...Anonymous
April 14, 2011
Thank you very for sharing. I've also been searching for ^multiple hours to solve this. But for me, this issue sounds like a "Bug", doesn't it? Jens>I won't call it a bug, since it is working as designed. However you could argue that it would be nice to have a button in the setup UI to re-load the toplogy :-)Anonymous
May 11, 2011
Thank you so much. This worked perfectly and solved a problem I have been working on for days.Anonymous
June 24, 2011
Thanks Jens, this really helped me out! :-)Anonymous
October 04, 2011
Thanks alot!Anonymous
February 22, 2012
Great info. Not only the solution, but also the explanation. Thanks!Anonymous
March 31, 2012
Great Solution, working perfect and now I am able to go on with the needed Installation Steps of Lync. Thanks a lot!! :-)Anonymous
July 05, 2012
Hi still am unable to export topology ... can u plz tell me any other process. thanks in adance Jens>There is no other way. You need to troubleshoot why you can't connect to the cms database from Lync Management Shell. You can try to use -verbose on the export-csconfiguration command. If you're unable to find the issue please open an incident with Microsoft Support.Anonymous
October 15, 2012
EXACTLY! Thank you very much [internet beer]