Script: Get-CsUpdateVersion.ps1 – See the Cumulative Update Level Of All Lync/Skype for Business Servers
My work at Modality Systems often has me doing health checks for customer Lync environments. These can be due to customer requests, or as part of our onboarding for new managed support customers. If you’ve ever had an Active Directory Risk Assessment Program (ADRAP) or Exchange Risk Assessment Program (ExRAP), it’s quite similar. Lots of tasks to run, lots of data to sift through. So it’s always beneficial to standardize and automate the steps to get the data. The same is the case when you’re responsible for your own environment and want to ensure good health.
Just like Get-CsDatabaseUpdateStatus.ps1, Dave Howe from the Lync product group and I teamed up to automate something. In this case, it’s looking at what Cumulative Updates are installed on each server throughout a Lync environment. This script queries each pool, then finds what servers are part of that pool, and queries each server to find the CU that’s installed. It then provides an easy to read output of the entire environment (with exceptions) for easy review. As shown below, we see three multi-server pools, the version number and “friendly” Cumulative Update info.
The script works fine with Standard Edition servers as well:
In the first example, you see that the first two servers show “PSRemoting failure”. This is because the script uses PowerShell Remoting to connect to each remote server to query information (see installation notes below). PSRemoting doesn’t really work the same when dealing with non-domain joined machines, such as the first two, which are edge servers. So the script isn’t able to communicate with them via PSRemoting, and flags them. If the script can’t ping a server, it will show as “offline”. The friendly name of the CU shown is coded in the script. So I’ll update it each time a new CU is released.
By default, the script checks all pools. But you can specify a single pool by using the -PoolFqdn parameter.
A new option added is the -online option. When you use this option, the script will query an online source of version info, instead of using the data listed within the script.
Get-CsUpdateVersion.ps1 [[-PoolFqdn] ] [-WhatIf] [-Confirm] [-Online]
This script uses PowerShell Remoting to query remote servers. PSRemoting is enabled by default on Windows Server 2012 and later, but disabled by default on 2008 R2. To enable PSRemoting on 2008 R2 servers, see Enable-PSRemoting.
Execution Policy: Third-party PowerShell scripts may require that the PowerShell Execution Policy be set to either AllSigned, RemoteSigned, or Unrestricted. The default is Restricted, which prevents scripts – even code signed scripts – from running. For more information about setting your Execution Policy, see Using the Set-ExecutionPolicy Cmdlet.
I’ve never been one to really solicit donations for my work. My offerings are created because *I* need to solve a problem, and once I do, it makes sense to offer the results of my work to the public. I mean, let’s face it: I can’t be the only one with that particular issue, right? Quite often, to my surprise, I’m asked why I don’t have a “donate” button so people can donate a few bucks. I’ve never really put much thought into it. But those inquiries are coming more often now, so I’m yielding to them. If you’d like to donate, you can send a few bucks via PayPal at https://www.paypal.me/PatRichard. Money collected from that will go to the costs of my website (hosting and domain names), as well as to my home lab.
v3.8 – 02-14-2017 – Get-CsUpdateVersion.v3.8.zip
v3.7 – 02-05-2017 – Get-CsUpdateVersion.v3.7.zip
v3.6 – 01-06-2017 – Get-CsUpdateVersion.v3.6.zip
v3.5 – 11-28-2016 – Get-CsUpdateVersion.v3.5.zip
v3.4 – 11-12-2016 – Get-CsUpdateVersion.v3.4.zip
v3.3 – 08-31-2016 – Get-CsUpdateVersion.v3.3.zip
v3.2 – 07-15-2016 – Get-CsUpdateVersion.v3.2.zip
v3.1 – 07-05-2016 – Get-CsUpdateVersion.v3.1.zip
v3.0 – 04-21-2016 – Get-CsUpdateVersion.v3.0.zip
v2.9 – 04-07-2016 – Get-CsUpdateVersion.v2.9.zip
v2.8 – 01-26-2016 – Get-CsUpdateVersion.v2.8.zip
v2.7 – 12-14-2015 – Get-CsUpdateVersion.v2.7.zip
v2.6 – 11-17-2015 – Get-CsUpdateVersion.v2.6.zip
v2.5 – 11-11-2015 – Get-CsUpdateVersion.v2.5.zip
v2.4 – 10-03-2015 – Get-CsUpdateVersion.v2.4.zip
v2.3 – 09-09-2015 – Get-CsUpdateVersion.v2.3.zip
v2.2 – 07-14-2015 – Get-CsUpdateVersion.v2.2.zip
v2.1 – 06-21-2015 – Get-CsUpdateVersion.v2.1.zip
v2.0 – 05-12-2015 – Get-CsUpdateVersion.v2.0.zip
v1.9 – 02-19-2015 – Get-CsUpdateVersion.v1.9.zip
v1.8 – 02-09-2015 – Get-CsUpdateVersion.v1.8.zip
v1.7 – 01-01-2015 – Get-CsUpdateVersion.v1.7.zip
v1.6 – 12-12-2014 – Get-CsUpdateVersion.v1.6.zip
v1.5 – 11-21-2014 – Get-CsUpdateVersion.v1.5.zip
v1.4 – 09-24-2014 – Get-CsUpdateVersion.v1.4.zip
v1.3 – 09-02-2014 – Get-CsUpdateVersion.v1.3.zip
v1.2 – 08-07-2014 – Get-CsUpdateVersion.v1.2,zip
v1.1 – 06-02-2014 – Get-CsUpdateVersion.v1.1.zip
v1.0 – 05-02-2014 – Get-CsUpdateVersion.v1.0.zip
See the changelog for information on what’s changed/included in each version.