Introduction

The other day I posted about the patching procedure for the SharePoint 2013 Distributed Cache (Microsoft AppFabric 1.1) and on that post I got a great comment from Riccardo:

Hi Wictor, is it possible to discover the patch level of the Distributed Cache without looking at control panel? Powershell?

That is a great question Riccardo! But the answer is not that simple…

Check the version using Installed Updates

The easiest way to manually check what version of AppFabric you are using, or rather which CU that is applied to AppFabric 1.1, is to use the Program and Features tool in Windows Server and then click on View installed updates.

Installed AppFabric updates

As you can see in the screenshot above, they all have the same version 1.1.2106.32 and that is also the version you get when you query the registry with this:

Get-ItemProperty HKLM:\SOFTWARE\Microsoft\AppFabric\V1.0\ -Name ProductVersion | select ProductVersion

That version number is the version number of Microsoft AppFabric 1.1 and it doesn’t change when you are applying Cumulative Updates.

Check the Distributed Cache version using PowerShell

If you want to automate checking the patch level of the Distributed Cache then the only way I’ve found (if someone has a better way, please enlighten me) is to actually check the version of one specific file, the Microsoft.ApplicationServer.Caching.Configuration.dll file. This is one of the few files that is updated in all the current CU’s (1-5), but I cannot guarantee that it will be updated in future version. The check is is done using the following PowerShell script (remove the line breaks and paste as a single line):

(Get-ItemProperty "C:\Program Files\AppFabric 1.1 for Windows Server\
PowershellModules\DistributedCacheConfiguration
\Microsoft.ApplicationServer.Caching.Configuration.dll" -Name VersionInfo)
.VersionInfo.ProductVersion

This script will give you different version numbers depending on your AppFabric 1.1 CU level as follows:

CU level

Product Version

CU1

1.0.4639.0

CU2

1.0.4644.0

CU3

1.0.4652.2

CU4

1.0.4653.2

CU5

1.0.4655.2

If this method is valid for future CU’s then please remind me to update this table.

Summary

So Riccardo, there you have the best answer I can give you. It is not an optimal solution but it works…