Skip to content

Instantly share code, notes, and snippets.

@tcartwright
Last active June 16, 2021 18:45
Show Gist options
  • Save tcartwright/b17717d1ffa924320873dfc5896459d0 to your computer and use it in GitHub Desktop.
Save tcartwright/b17717d1ffa924320873dfc5896459d0 to your computer and use it in GitHub Desktop.
Get Installed DotNet Frameworks
@echo OFF
@setlocal ENABLEEXTENSIONS
@REM Author: Tim Cartwright
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP"
@rem https://msdn.microsoft.com/en-us/library/hh925568%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396#net_d
@echo.
set KEY_NAME="HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
set VALUE_NAME=Release
FOR /F "tokens=1-3" %%A IN ('REG QUERY %KEY_NAME% /v %VALUE_NAME% 2^>nul') DO (
set EntryName=%%A
set EntryType=%%B
set /a EntryValue=%%C
)
@rem echo %EntryName% - blah
@rem echo %EntryType% - blah
@echo .NET 4 Release version: %EntryValue%
@if "%EntryValue%" EQU "378389" ( @echo .NET Framework 4.5 & GOTO DONE )
@if "%EntryValue%" EQU "378675" ( @echo .NET Framework 4.5.1 for Windows 8.1 installed & GOTO DONE)
@if "%EntryValue%" EQU "378758" ( @echo .NET Framework 4.5.1 for Windows 8, Windows 7 SP1, or Windows Vista SP2 installed & GOTO DONE)
@if "%EntryValue%" EQU "379893" ( @echo .NET Framework 4.5.2 & GOTO DONE)
@if "%EntryValue%" EQU "393295" ( @echo .NET Framework 4.6 for with Windows 10 installed & GOTO DONE)
@if "%EntryValue%" EQU "393297" ( @echo .NET Framework 4.6 for all other Windows OS versions installed & GOTO DONE)
@if "%EntryValue%" EQU "394254" ( @echo .NET Framework 4.6.1 for Windows 10 installed & GOTO DONE)
@if "%EntryValue%" EQU "394271" ( @echo .NET Framework 4.6.1 for all other Windows OS versions installed & GOTO DONE)
@if "%EntryValue%" EQU "394802" ( @echo .NET Framework 4.6.2 for Windows 10 Anniversary Update installed & GOTO DONE)
@if "%EntryValue%" EQU "394806" ( @echo .NET Framework 4.6.2 for all other Windows OS versions installed & GOTO DONE)
@if "%EntryValue%" EQU "460798" ( @echo .NET Framework 4.7 on Windows 10 Creators Update installed & GOTO DONE)
@if "%EntryValue%" EQU "460805" ( @echo .NET Framework 4.7 on all other Windows OS versions installed & GOTO DONE)
@if "%EntryValue%" EQU "461308" ( @echo .NET Framework 4.7.1 on Windows 10 Creators Update installed & GOTO DONE)
@if "%EntryValue%" EQU "461310" ( @echo .NET Framework 4.7.1 on all other Windows OS versions installed & GOTO DONE)
@if "%EntryValue%" EQU "461808" ( @echo .NET Framework 4.7.2 & GOTO DONE)
@if "%EntryValue%" EQU "461814" ( @echo .NET Framework 4.7.2 on all other Windows OS versions installed & GOTO DONE)
@if "%EntryValue%" EQU "528040" ( @echo .NET Framework 4.8 on Windows 10 May 2019 Update and Windows 10 November 2019 Update & GOTO DONE)
@if "%EntryValue%" EQU "528372" ( @echo .NET Framework 4.8 on Windows 10 May 2020 Update and Windows 10 October 2020 Update & GOTO DONE)
@if "%EntryValue%" EQU "528049" ( @echo .NET Framework 4.8 on all other Windows OS versions installed & GOTO DONE)
@echo UNABLE TO DETERMINE RELEASE VERSION
:DONE
@echo.
@pause
-- https://msdn.microsoft.com/en-us/library/hh925568%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396#net_d
DECLARE @value int
EXEC master.dbo.xp_regread @rootkey='HKEY_LOCAL_MACHINE',
@key='SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full',
@value_name='Release',
@value = @value OUTPUT
IF @value = 378389 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.5 installed'
ELSE IF @value = 378675 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.5.1 for Windows 8.1 installed'
ELSE IF @value = 378758 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.5.1 for Windows 8, Windows 7 SP1, or Windows Vista SP2 installed'
ELSE IF @value = 379893 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.5.2 installed'
ELSE IF @value = 393295 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.6 for with Windows 10 installed'
ELSE IF @value = 393297 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.6 for all other Windows OS versions installed'
ELSE IF @value = 394254 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.6.1 for Windows 10 installed'
ELSE IF @value = 394271 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.6.1 for all other Windows OS versions installed'
ELSE IF @value = 394802 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.6.2 for Windows 10 Anniversary Update installed'
ELSE IF @value = 394806 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.6.2 for all other Windows OS versions installed'
ELSE IF @value = 460798 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.7 installed on Windows 10 Creators Update installed'
ELSE IF @value = 460805 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.7 installed on all other Windows OS versions installed'
ELSE IF @value = 461308 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.7.1 installed on Windows 10 Creators Update installed'
ELSE IF @value = 461310 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.7.1 installed on all other Windows OS versions installed'
ELSE IF @value = 461808 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.7.2 installed'
ELSE IF @value = 461814 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.7.2 on all other Windows OS versions installed'
ELSE IF @value = 528040 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.8 on Windows 10 May 2019 Update and Windows 10 November 2019 Update installed'
ELSE IF @value = 528372 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.8 on Windows 10 May 2020 Update and Windows 10 October 2020 Update installed'
ELSE IF @value = 528049 PRINT CAST(@value AS VARCHAR(20)) + ' - .NET Framework 4.8 on all other Windows OS versions installed'
ELSE PRINT CAST(@value AS VARCHAR(20)) + ' - UNKNOWN FRAMEWORK VERSION'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment