Exchange Server 2016 – Unable to determine file version PowerShellEngine

Exchange Server 2016 – Unable to determine file version PowerShellEngine

After installing Exchange Server 2016 CU4 on Windows Server 2016, the Exchange Management Shell would fail to connect with the error:

New-PSSession : [xxxxxxxxxxxxxxxxxx] Processing data from remote server xxxxxxxxxxxxxxxxxx
failed with the following error message: [ClientAccessServer=xxxxxxxxxxxxxxxxxx,BackEndServer=xxxxxxxxxxxxxxxxxx,RequestId=bc9549f6-b772-4933-8132-84dfcd57372d,TimeStamp=07/03/2017 12:25:32]
[AuthZRequestId=7f855afa-31f2-4e46-bd1b-c1bf1ebc95f1][FailureCategory=AuthZ-SetupVersionInformationCorruptException]
Unable to determine the installed file version from the registry key
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine'. For more information, see the
about_Remote_Troubleshooting Help topic.
At line:1 char:1

Of course I searched online, like a good Microsoft evangelist I tried Bing first and then when I didn’t find a suitable answer I resorted to Google.  The only articles I found were ones talking about hacking the registry, which in my opinion is fine for a lab or dev server but not cool for a production server.

After some thinking about how Microsoft connects to Exchange via Remote PowerShell and the fact that there was a \3\PowerShellEngine key, I thought let’s try to install PowerShell-V2 and lo and behold it resolved the problem.

So it seems that Exchange Server 2016 CU4 on Windows Server 2016 needs PowerShell-V2 as a pre-requisite (eventhough it is not stated anywhere and it doesn’t install that feature itself when told to install dependent roles and features…)  Anyway simple fix

Install-WindowsFeature PowerShell-V2