Jetzt Ausprobieren

.NET Framework Version Audit

Software

Find .NET Framework Versions 4.5+ of All Computers in Your Network

.NET Framework is the original implementation of .NET. It supports running websites, services, desktop apps, and more on Windows and is by default installed on modern Windows versions. In theory, this requires no maintenance, but due to changes in security standards, it is encouraged to always have the latest version of .NET Framework. Recently Microsoft mentioned that some specific releases were previously signed using Secure Hash Algorithm (SHA-1) certificates. This algorithm is no longer deemed secure.

Before running the audit, add the following scanning configuration to custom registry scanning.

    • Rootkey: HKEY_LOCAL_MACHINE
    • Regpath: SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
    • Regvalue: Release
The audit below provides an overview of all your Windows devices along with which .NET Framework 4.5 version or higher was detected through registry scanning.
 
.NET Framework version report

 

.NET Framework Version Audit Query

Select Top 1000000 tblAssets.AssetID,
tblAssets.AssetName,
tblAssets.Domain,
tblAssets.Username,
tblAssets.Userdomain,
Coalesce(tsysOS.Image, tsysAssetTypes.AssetTypeIcon10) As icon,
tblAssets.IPAddress,
tsysIPLocations.IPLocation,
tblAssetCustom.Manufacturer,
tblAssetCustom.Model,
tsysOS.OSname As OS,
tblAssets.Version,
tblAssets.SP,
Case
When TsysLastscan.Lasttime < GetDate() - 1 Then
'Last registry scan more than 24 hours ago! Information may not be up-to-date. Try rescanning this machine.'
End As Comment,
Case
When SubQuery1.Valuename Is Not Null And SubQuery1.Valuename <> ''
Then 'Yes'
Else 'No'
End As ValuenameFound,
SubQuery1.Regkey,
SubQuery1.Valuename,
SubQuery1.Value,
case
when cast(SubQuery1.Value as bigint) >= 528040 then '.NET Framework 4.8'
when cast(SubQuery1.Value as bigint) >= 461808 then '.NET Framework 4.7.2'
when cast(SubQuery1.Value as bigint) >= 461308 then '.NET Framework 4.7.1'
when cast(SubQuery1.Value as bigint) >= 460798 then '.NET Framework 4.7'
when cast(SubQuery1.Value as bigint) >= 394802 then '.NET Framework 4.6.2'
when cast(SubQuery1.Value as bigint) >= 394254 then '.NET Framework 4.6.1'
when cast(SubQuery1.Value as bigint) >= 393295 then '.NET Framework 4.6'
when cast(SubQuery1.Value as bigint) >= 379893 then '.NET Framework 4.5.2'
when cast(SubQuery1.Value as bigint) >= 378675 then '.NET Framework 4.5.1'
when cast(SubQuery1.Value as bigint) >= 378389 then '.NET Framework 4.5'
end as [.NET Framework Version],
Case
When tblErrors.ErrorText Is Not Null Or
tblErrors.ErrorText != '' Then
'Scanning Error: ' + tsysasseterrortypes.ErrorMsg
Else ''
End As ScanningErrors,
TsysLastscan.Lasttime As LastRegistryScan,
SubQuery1.Lastchanged,
tblAssets.Firstseen,
tblAssets.Lastseen,
tblAssets.Lasttried
From tblAssets
Inner Join tblAssetCustom On tblAssets.AssetID = tblAssetCustom.AssetID
Inner Join tsysAssetTypes On tsysAssetTypes.AssetType = tblAssets.Assettype
Inner Join tsysIPLocations On tsysIPLocations.LocationID =
tblAssets.LocationID
Inner Join tblState On tblState.State = tblAssetCustom.State
Left Join tsysOS On tsysOS.OScode = tblAssets.OScode
Left Join (Select Distinct Top 1000000 tblErrors.AssetID As ID,
Max(tblErrors.Teller) As ErrorID
From tblErrors
Group By tblErrors.AssetID) As ScanningError On tblAssets.AssetID =
ScanningError.ID
Left Join tblErrors On ScanningError.ErrorID = tblErrors.Teller
Left Join tsysasseterrortypes On tsysasseterrortypes.Errortype =
tblErrors.ErrorType
Inner Join TsysLastscan On tblAssets.AssetID = TsysLastscan.AssetID
Inner Join TsysWaittime On TsysWaittime.CFGCode = TsysLastscan.CFGcode
Left Join (Select Top 1000000 tblRegistry.AssetID,
tblRegistry.Regkey,
tblRegistry.Valuename,
tblRegistry.Value,
tblRegistry.Lastchanged
From tblRegistry
Where tblRegistry.Regkey Like '%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' And
tblRegistry.Valuename = 'Release') SubQuery1 On SubQuery1.AssetID =
tblAssets.AssetID
Where tblAssetCustom.State = 1 And TsysWaittime.CFGname = 'registry'
Order By tblAssets.Domain,
tblAssets.AssetName

Show

Hide