.Net End of Life Audit

Find End of Life .Net Core Installations

.NET Core is a free, open-source, development platform by Microsoft. The framework is cross-platform, meaning that it runs on Windows, macOS, and Linux operating systems. This allows developers to more easily create an application that supports multiple platforms. .NET Core supports building different types of applications like mobile, desktop, web, cloud, IoT, machine learning, microservices, games, and much more.

To help you get an overview of the .NET end of life status, you can use the report below to get a list of all machines in your environment that have a .NET core installation. You can read more about the end of life in .NET core in the end of life blog post.

.Net End of Life Audit Query

SELECT DISTINCT TOP 1000000 tblAssets.AssetID, 
tblAssets.AssetName, 
tblAssets.Domain, 
tsysAssetTypes.AssetTypename AS AssetType, 
tblAssets.Username, 
tblAssets.Userdomain, 
tsysAssetTypes.AssetTypeIcon10 AS icon, 
tblAssets.IPAddress, 
tsysIPLocations.IPLocation, 
tblAssetCustom.Manufacturer, 
tblAssetCustom.Model, 
tsysOS.OSname AS OS, 
tblAssets.SP, 
subquery1.Software, 
subquery1.Version, 
subquery1.Publisher, 
subquery1.EOLDate,
CASE
WHEN GETDATE() < subquery1.EOLDate
THEN CAST(DATEDIFF(DAY, GETDATE(), subquery1.EOLDate) AS NVARCHAR) + ' days remaining'
END AS [Days Remaining], 
tblAssets.Lastseen, 
tblAssets.Lasttried,
CASE
WHEN GETDATE() > subquery1.EOLDate
THEN '#ffadad'
ELSE '#d4f4be'
END AS backgroundcolor
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 tblSoftwareUni.softwareName AS Software, 
tblsoftware.softwareVersion AS Version, 
tblSoftwareUni.SoftwarePublisher AS Publisher,
CASE
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(tblsoftware.softwareVersion, '.', '')), 20), 2) AS INT) = 10
THEN '2019-06-27'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(tblsoftware.softwareVersion, '.', '')), 20), 2) AS INT) = 11
THEN '2019-06-27'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(tblsoftware.softwareVersion, '.', '')), 20), 2) AS INT) = 20
THEN '2018-10-01'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(tblsoftware.softwareVersion, '.', '')), 20), 2) AS INT) = 22
THEN '2019-12-23'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(tblsoftware.softwareVersion, '.', '')), 20), 2) AS INT) = 30
THEN '2020-03-03'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(tblsoftware.softwareVersion, '.', '')), 20), 2) AS INT) = 21
THEN '2021-08-21'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(tblsoftware.softwareVersion, '.', '')), 20), 2) AS INT) = 31
THEN '2022-12-03'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(tblsoftware.softwareVersion, '.', '')), 20), 2) AS INT) >= 50
THEN '2022-06-01'
END AS EOLDate, 
tblsoftware.AssetID
FROM tblsoftware
INNER JOIN tblSoftwareUni ON tblSoftwareUni.SoftID = tblsoftware.softID
WHERE(tblSoftwareUni.softwareName LIKE 'Microsoft .NET%'
OR tblSoftwareUni.softwareName LIKE 'Microsoft Windows Desktop Runtime')
) AS subquery1 ON subquery1.AssetID = tblAssets.AssetID
WHERE(subquery1.Software LIKE 'Microsoft .NET%'
OR subquery1.Software LIKE 'Microsoft Windows Desktop Runtime')
AND tblState.Statename = 'Active'
UNION
SELECT DISTINCT TOP 1000000 tblAssets.AssetID, 
tblAssets.AssetName, 
tblAssets.Domain, 
tsysAssetTypes.AssetTypename AS AssetType, 
tblAssets.Username, 
tblAssets.Userdomain, 
tsysAssetTypes.AssetTypeIcon10 AS icon, 
tblAssets.IPAddress, 
tsysIPLocations.IPLocation, 
tblAssetCustom.Manufacturer, 
tblAssetCustom.Model, 
tblLinuxSystem.OSRelease AS OS, 
tblAssets.SP, 
subquery1.Software, 
subquery1.Version, 
subquery1.Publisher, 
subquery1.EOLDate,
CASE
WHEN GETDATE() < subquery1.EOLDate
THEN CAST(DATEDIFF(DAY, GETDATE(), subquery1.EOLDate) AS NVARCHAR) + ' days remaining'
END AS [Days Remaining], 
tblAssets.Lastseen, 
tblAssets.Lasttried,
CASE
WHEN GETDATE() > subquery1.EOLDate
THEN '#ffadad'
ELSE '#d4f4be'
END AS backgroundcolor
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
INNER JOIN tblLinuxSystem ON tblAssets.AssetID = tblLinuxSystem.AssetID
LEFT JOIN
(
SELECT tblSoftwareUni.softwareName AS Software, 
tblLinuxSoftware.Version AS Version, 
tblSoftwareUni.SoftwarePublisher AS Publisher,
CASE
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(Replace(tblLinuxSoftware.Version, '.', ''),'-','')), 20), 2) AS INT) = 10
THEN '2019-06-27'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(Replace(tblLinuxSoftware.Version, '.', ''),'-','')), 20), 2) AS INT) = 11
THEN '2019-06-27'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(Replace(tblLinuxSoftware.Version, '.', ''),'-','')), 20), 2) AS INT) = 20
THEN '2018-10-01'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(Replace(tblLinuxSoftware.Version, '.', ''),'-','')), 20), 2) AS INT) = 22
THEN '2019-12-23'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(Replace(tblLinuxSoftware.Version, '.', ''),'-','')), 20), 2) AS INT) = 30
THEN '2020-03-03'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(Replace(tblLinuxSoftware.Version, '.', ''),'-','')), 20), 2) AS INT) = 21
THEN '2021-08-21'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(Replace(tblLinuxSoftware.Version, '.', ''),'-','')), 20), 2) AS INT) = 31
THEN '2022-12-03'
WHEN CAST(LEFT(RIGHT(CONVERT(BIGINT, Replace(Replace(tblLinuxSoftware.Version, '.', ''),'-','')), 20), 2) AS INT) >= 50
THEN '2022-06-01'
END AS EOLDate,
tblLinuxSoftware.AssetID
FROM tblLinuxSoftware
INNER JOIN tblSoftwareUni ON tblSoftwareUni.SoftID = tblLinuxSoftware.SoftwareUniID
WHERE tblSoftwareUni.softwareName LIKE '%dotnet%'
AND tblSoftwareUni.softwareName NOT LIKE '%runtime%') AS subquery1 ON subquery1.AssetID = tblAssets.AssetID
WHERE subquery1.Software LIKE '%dotnet%'
AND subquery1.Software NOT LIKE '%runtime%'
AND tblState.Statename = 'Active'
UNION
SELECT TOP 1000000 tblAssets.AssetID, 
tblAssets.AssetName, 
tblAssets.Domain, 
tsysAssetTypes.AssetTypename AS AssetType, 
tblAssets.Username, 
tblAssets.Userdomain, 
tsysAssetTypes.AssetTypeIcon10 AS icon, 
tblAssets.IPAddress, 
tsysIPLocations.IPLocation, 
tblAssetCustom.Manufacturer, 
tblAssetCustom.Model, 
tblMacOSInfo.SystemVersion AS OS, 
tblAssets.SP, 
tblSoftwareUni.softwareName AS Software,
CASE
WHEN tblMacApplications.Version IS NOT NULL
THEN tblMacApplications.Version
ELSE 'Check version via Terminal "dotnet --list-sdks"'
END AS Version, 
tblSoftwareUni.SoftwarePublisher AS Publisher, 
'N/A' AS eoldate, 
'N/A' AS [Days Remaining], 
tblAssets.Lastseen, 
tblAssets.Lasttried,
CASE
WHEN tblSoftwareUni.softwareName LIKE '%NetCore.App%'
THEN ''
END AS backgroundcolor
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
INNER JOIN tblMacApplications ON tblAssets.AssetID = tblMacApplications.AssetID
INNER JOIN tblSoftwareUni ON tblSoftwareUni.SoftID = tblMacApplications.softid
INNER JOIN tblMacOSInfo ON tblMacOSInfo.AssetID = tblAssets.AssetID
WHERE tblSoftwareUni.softwareName LIKE '%NetCore.App%'
AND tblSoftwareUni.softwareName NOT LIKE '%Asp%'
AND tblState.Statename = 'Active'
ORDER BY Domain, 
AssetName, 
Software;

Audit and Take Action in 3 Easy Steps

1. Download & Install Lansweeper

3. Run the Audit & Take Action

Download Lansweeper to Run this Audit

Harness the Power of Reporting