EDIT: The script file has been updated to include new updates added on 30th September
Recently I was involved in troubleshooting some issues on a Windows 2012 based Hyper-V Failover Cluster. The issues were various but it all started with many failed backups of the virtual machines, and random host connectivity issues resulting in the VMs being vacated from that host.
To cut a very long story short, a month’s worth of troubleshooting all came down to solving them by updating the hosts with the latest Windows Updates and installing ALL of the hotfixes listed here:
After installing the updates, the integration tools were updated within the VMs to resolve some issues when the VMs were being backed up.
Now the customer will be adding new nodes to the infrastructure and these will be hosting a Windows 2012 R2 Hyper-V Failover Cluster.
Having been through that ordeal with the current cluster, I wanted to make sure to deploy the new nodes with the latest updates and hotfixes installed. The recommended hotfixes can be found here.
I have installed one of the hosts and used a powershell script that would check if the host had the mentioned updates. The script I used at first was a modified version by SimmoLeigh of the script originally created by Cristian Edwards.
I modified the xml files to ensure that all the latest, until 17/09/2016, hotfixes and updates were included.
I also needed to modify the scripts because the latest HAL.dll version is 6.3.9600.17196, which is updated after installing the July 2014 rollup update.
Before proceeding with looking for the missing hot fixes, I updated the host with the latest windows updates, i.e until the August 2016 Rollup Update.
I ran the script against the host and to my surprise it listed a lot of missing hotfixes and updates.
I downloaded and installed each update and hotfix manually. Most of the updates gave an error that the update was not applicable for the system as per the below screenshot.
I later realized that these hotfixes have been included in some of the updates available through windows updates.
This required that I remove these updates from the xml files. I also modified the script to give me the option to only show updates that are missing or both. This is achieved by setting the variable $showinstalled to 0 to hide installed and 1 to show installed and missing.
After running the script again against the host, the result was only 4 missing hotfixes
The script will show a warning if the host is installed with an older version of windows 2012 or some critical updates are missing.
I also updated the script which checks all the nodes in a cluster. The XML files used are the same so the update was only done once.
You can find the modified powershell scripts in the zip file linked below together with the corresponding xml files.
With Windows 2016 around the corner, I doubt how much this will be used. If you do use it please leave a comment and let us know how it went.