17 Dec 2016

Cluster Aware Update for Nano Server

CAU and Nano, huh?

The past months I’ve been working more and more on the new deployment type of Windows Server 2016, the Nano Server. Nano Server is a great variant to deploy Windows Server for fabric roles like Hyper-V, Storage Spaces Direct or container hosts. When working with clusters, you might be familiar with CAU “Cluster aware Update“, a tool delivered as a part of Failover Clustering Management Tools. It’s primary intent is to orchestrate updating a Windows Failover Cluster using Windows Update Client / WSUS, with no downtime. While this works great for Desktop and Core installations, it doesn’t for Nano Server. Reason for this. the required WMI classes are just not present in Nano Server.

Nano Server Basics

For more information on Nano Server in general, you might consider to read some of my recent posts:

Deploy Packages and Windows Updates to Nano Servers

Sneak Peek on Nano Server 2016 TP5


So back to CAU (Cluster aware Update). I really needed this functionality in Nano Server as well, as I deploy S2D (Storage Spaced Direct) clusters primarily on Nano Server for various reasons. Therefore I’ve created a PowerShell script which basically imitates the CAU tool, without the need for the legacy WMI classes. The script uses CIM and Failover Cluster CMDLETs.

Currently the script has the following capabilities:

  • Per node pre- and post-script
  • Global pre- and post-script
  • Check all cluster nodes up
  • Check Clustered Storage Subsystem Health (if present) before processing (includes pools and vdisks)
  • Gracefully suspending each node
  • Check if node is up (ClusSvc paused) after reboot
  • Check Clustered Storage Subsystem Health before pausing next node (wait for rebuild, includes pools and vdisks)
  • Logging to C:\Windows\Logs\ClusterUpdate.log (in CMTrace format)










The script is available on my GitHub repo here. Feel free to test and report any bugs.

Although, the script has been tested heavily, you are using it at your very own risk. I don’t take any responsibility for messed up Clusters.