The following are simplified notes on patching a simple Lync 2013 Enterprise estate.  For detail instructions always use: https://support.microsoft.com/en-us/kb/2809243.

  1. Login to first Lync server you wish to upgrade using the Lync Admin account.  This account should be local admin and also have the necessary SQL rights if you are planning on updating the Database schema.

  2. I like to verify what version my current Lync tools are.  Use the following PS Script:

    Get-WmiObject -class Win32_Product | where {$_.name -like "*Lync Server*"} | Sort-Object Name | Select Name, Version | FT –AutoSize



  3. Next run the following command to verify Lync is in a "ready" state for upgrade.

    Get-CsPoolUpgradeReadinessState



  4. Start upgrade on the first server in the first Upgrade Domain.  Be sure to login using the Lync Admin account.  If you plan to update the database schema once Lync Servers are all upgraded be sure the Lync Admin account has the necessary SQL rights.  Run the following command to stop all Lync services:

    Stop-CsWindowsService -Graceful

  5. Once all services are stopped you may run the Lync Server Cumulative Update Installer.  Be sure to always check for latest version as the tool does get upgraded.



  6. When updates finish reboot the server.  Login and run the command from step two above if you wish to verify versions installed.  Your output will vary from image below.



  7. Repeat steps 1 - 6 for each Lync server you have in your estate.  Work your way out from Front-End server to Edge server always waiting for a "Ready" state before continuing.  If you do not you may cause corruption.

  8. When all Lync servers have been successfully upgraded you must check to see if a database update is necessary.  Run the following command to verify.

    Test-CsDatabase -ConfiguredDatabases -SqlServerFqdn yoursql.yourdomain.com -Verbose

    If upgraded is needed run:

    Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn yoursql.yourdomain.com -Verbose

    Pay attention for success messages and run the "Test-CsDatabase" again to verify.  That's it.  You're done!