On a Windows Server 2012 R2 Core Server box, I get these results:
PS C:\Users\vagrant> Get-WindowsFeature | Where-Object {$_.DisplayName -like "*.NET*"}
Display Name Name Install State
------------ ---- -------------
[ ] .NET Framework 4.5 AS-NET-Framework Removed
[ ] .NET Extensibility 3.5 Web-Net-Ext Available
[ ] .NET Extensibility 4.5 Web-Net-Ext45 Available
[ ] ASP.NET 3.5 Web-Asp-Net Available
[ ] ASP.NET 4.5 Web-Asp-Net45 Available
[ ] .NET Framework 3.5 Features NET-Framework-Features Available
[ ] .NET Framework 3.5 (includes .NET 2.0 and 3.0) NET-Framework-Core Removed
[X] .NET Framework 4.5 Features NET-Framework-45-Fea... Installed
[X] .NET Framework 4.5 NET-Framework-45-Core Installed
[ ] ASP.NET 4.5 NET-Framework-45-ASPNET Available
[ ] .NET Environment 3.5 WAS-NET-Environment Available
I don't know how to interpret the above report. Is .NET framework 4.5 installed, or not installed? How can ".NET 4.5 features" be "installed", but ".NET 4.5" is "removed"?
The registry entries for .net on this same machine look like this:
Based on the this MSDN article, presumably I have .NET Framework 4.5.1 installed. But still, how should I interpret the first report above? It seems to suggest that my .NET 4.5 install is incomplete.
And it gets worse. Consider this output:
PS C:\Users\vagrant> $psversiontable
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.33440
BuildVersion 6.3.9600.16384
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
This looks like it conflicts with both the reports above. :(