-3

How can I find which dotnet Framework version is installed via Powershell?

I found some code but it is not working, or I do not know how to run it.

Can you please help me develop any script which can be run on cmd and collect .Net framework version?.

henrycarteruk
  • 12,708
  • 2
  • 36
  • 40
  • 3
    Writing all caps is considered screaming in the internet, and very rude. Please consider another method of highlighting. Additionally, Code-Samples of what you tried are very welcome here on StackOverflow. – Christoph Sonntag Jul 07 '17 at 12:00

1 Answers1

2

There was an error in the PowerShell code in your linked Question, here's the working version of it which gives an output like this:

v2.0.50727 2.0.50727.4927 SP 2
v3.0 3.0.30729.4926 SP 2
v3.5 3.5.30729.4926 SP 1
v4 Client 4.6.01586
v4 Full 4.6.01586
v4.0 Client 4.0.0.0
function Get-KeyPropertyValue($key, $property) {
    if ($key.Property -contains $property) {
        Get-ItemProperty $key.PSPath -name $property | Select-Object -expand $property
    }
}

function Get-VersionName($key) {
    $name = Get-KeyPropertyValue $key Version
    $sp = Get-KeyPropertyValue $key SP
    if ($sp) {
        "$($_.PSChildName) $name SP $sp"
    }
    else {
        "$($_.PSChildName) $name"
    }
}

function Get-FrameworkVersion {
    Get-ChildItem "hklm:\SOFTWARE\Microsoft\NET Framework Setup\NDP\" | Where-Object {$_.PSChildName -like "v*"} | ForEach-Object {
        if ( $_.Property -contains "Version") {
            Get-VersionName $_
        }
        else {
            $parent = $_
            Get-ChildItem $_.PSPath | ForEach-Object {
                $versionName = Get-VersionName $_
                "$($parent.PSChildName) $versionName"
            }
        }
    }
}

Get-FrameworkVersion

EDIT:

if (Test-Path "hklm:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full") {
    switch (Get-KeyPropertyValue (Get-Item $v4Directory) Release) {
        378389 {".NET Framework 4.5"; break; }
        378675 {".NET Framework 4.5.1 installed with Windows 8.1 or Windows Server 2012 R2"; break; }
        378758 {".NET Framework 4.5.1 installed on Windows 8, Windows 7 SP1, or Windows Vista SP2"; break; }
        379893 {".NET Framework 4.5.2"; break; }
        { 393295, 393297 -contains $_} {".NET Framework 4.6"; break; }
        { 394254, 394271 -contains $_} {".NET Framework 4.6.1"; break; }
        { 394802, 394806 -contains $_} {".NET Framework 4.6.2"; break; }
    }
}
henrycarteruk
  • 12,708
  • 2
  • 36
  • 40