Lync 2103 Enterprise Frontend server rebuild process after a server has been removed from the topology

There may come a time where a failed server may need to be removed from the topology.  I thought I would quickly list the steps needed to introduce it back into the topology

  1. Install Lync FE prerequisites as described here:  https://technet.microsoft.com/en-us/library/gg398103.aspx
  2. Import the pool certificate with private key on the rebuilt server
  3. Use the process documented here to add the server to the topology and publish it:  https://technet.microsoft.com/en-us/library/jj205153.aspx.  Do not restart the servers yet. 
  4. Open the deployment wizard on the rebuilt server, select Install or update Lync server, and run steps 1-5
  5. Restart all FE's one at a time starting with the newly added server. 
  6. Once all servers are up, run "get-csmanagementreplicationstorestatus".  After everything shows "true" in the output, run "get-cspoolfabricstate -poolfqdn <poolname>".  -type routing verbose.   If all groups look evenly distributed move on to the next step.
  7. Run "get-cspoolupgradereadinessstate".  If the state of the pool is Busy, wait until it shows Ready to move onto the next step.
  8. On the server you added back to the pool, run "stop-cswindowsservice -graceful".   Run "get-cswindowservice" to view service state.  Once all services are stopped, you can proceed to the next step. 
  9. Install the Cumulative Update that is currently on the other FE's in the pool. 
  10. Install all SQL Express updates that are installed on you other FE's.
  11. Reboot the server.  Run the cmdlets from step 6 to verify replication and the fabric are healthy,

There is a caveat to this process...if you are going from a 1 or 2 server pool to any other server count (from 2 to 3, 1 to 4, etc).  If that's the case, you must run "Reset-CsPoolRegistrarState-ResetType FullReset -PoolFqdn <PoolFqdn" after step 4 and before step 5. Running this cmdlet can take a very long time. The pool services will slowly come on line after this cmdlet is ran. Be aware that there may be significant down time as this occurs. This should be done in a planned maintenance window.