Home > Windows にまつわる e.t.c.

PowerShell で .NET Framework バージョンを確認する


.NET Framework のバージョンは、レジストリに記録されていますので、レジストリを読めばインストールされている .NET Framework バージョンが判別できます。

インストールされている .NET Framework バージョンを確認する
https://msdn.microsoft.com/ja-jp/library/hh925568(v=vs.110).aspx

 

PowerShell でバージョン確認スクリプト書いてみました。

# レジストリ読み取り
function RegGet( $RegPath, $RegKey ){
    # レジストリそのものの有無確認
    if( -not (Test-Path $RegPath )){
        return $null
    }

    # Key有無確認
    $Result = Get-ItemProperty $RegPath -name $RegKey -ErrorAction SilentlyContinue
    # キーがあった時
    if( $Result -ne $null ){
        return $Result.$RegKey
    }
    # キーが無かった時
    else{
        return $null
    }
}

# メイン処理

$RootReg = "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP"
$Datas = dir $RootReg

foreach( $Data in $Datas ){
    $Terget = $Data.Name
    $Terget = $Terget -replace "HKEY_LOCAL_MACHINE", "HKLM:"

    # 1 - 4
    $Version = RegGet $Terget "Version"
    if( $Version -ne $null ){
        $SP = RegGet $Terget "SP"
        echo "$Version SP:$SP"
    }

    # 4 -
    if( (Split-Path $terget -Leaf) -eq "v4" ){
        $Terget = $Terget + "\" + "Client"
        $Version = RegGet $Terget "Release"
        switch ($Version){
            378389 { echo "4.5" }
            378675 { echo "4.5.1" }
            378758 { echo "4.5.1" }
            379893 { echo "4.5.2" }
            393295 { echo "4.6" }
            393297 { echo "4.6" }
            394254 { echo "4.6.1" }
            394271 { echo "4.6.1" }
            394802 { echo "4.6.2" }
            394806 { echo "4.6.2" }
            460798 { echo "4.7" }
            460805 { echo "4.7" }
            461308 { echo "4.7.1" }
            461310 { echo "4.7.1" }
            461808 { echo "4.7.2" }
            461814 { echo "4.7.2" }
            default {
                echo "Release $Version"
                $Version = RegGet $Terget "Version"
                echo "Version $Version"
            }
        }
    }
}

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.