TRY NOW

Visual Studio and Team Foundation Server End of Life Audit

Security Software

Find End of Life Visual Studio and Team Foundation Server Installations

Visual Studio is one of the longest-running integrated development environments and still has multiple versions being supported. Versions 2015 through 2022 are currently still being supported and have varying end-of-life dates.

Visual Studio Team Foundation Server (TFS) (now Azure DevOps Server) provides a comprehensive toolchain for team collaboration during the lifecycle of an application. Its current supported versions are versions 2015 through (Azure DevOps Server) 2022.

Both Visual Studio and Team Foundation Server use Microsoft’s fixed lifecycle policy which provides 10 years of support. To help you keep an eye on the end-of-life dates for the various Visual Studio and TFS versions we’ve created a special color-coded report that lists your Visual Studio and TFS installations along with the (LTSC) EOL date and how many days are remaining.

Read all about the Visual Studio and TFS lifecycle in our Visual Studio and Team Foundation Server blog post.

Visual Studio EOL example
team foundation server end of life audit report

Updates:

  • 2022-12-2: EOL dates Visual Studio 2022 added
  • 2023-6-7: Added EOL Date Version 17.6 (LTSC channel)
  • 2024-01-09: Added EOL Date Version 17.8 (LTSC channel)
  • 2024-03-11: TFS and Azure DevOps added

Visual Studio and Team Foundation Server EOL Audit Lansweeper On-Prem 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 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 tblsoftware.softwareVersion Like '11.0.61219%' Or
tblsoftware.softwareVersion Like '11.0.50727%' Then '2023-01-10'
When tblsoftware.softwareVersion Like '12.%' Then '2024-04-09'
When tblsoftware.softwareVersion Like '14.%' Then '2025-10-14'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '15%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 9 Then
'2027-04-13'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '15%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 9 Then
'2027-04-13'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '16%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 4 Then
'2021-10-01'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '16%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 4 Then
'2021-10-01'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '16%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 7 Then
'2022-04-12'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '16%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 7 Then
'2022-04-12'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '16%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 9 Then
'2022-10-11'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '16%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 9 Then
'2022-10-11'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '16%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 11 Then
'2029-04-10'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '16%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 11 Then
'2029-04-10'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 0 Then
'2023-07-11'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 2 Then
'2024-01-09'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 4 Then
'2024-07-11'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 6 Then
'2025-01-09'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) < 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 2) As bigint) = 8 Then
'2025-07-08'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 0 Then
'2023-07-11'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 2 Then
'2024-01-09'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 4 Then
'2024-07-11'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 6 Then
'2025-01-09'
When Len(tblsoftware.softwareVersion) -
Len(Replace(tblsoftware.softwareVersion, '.', '')) = 3 And
tblsoftware.softwareVersion Like '17%' And
Cast(ParseName(tblsoftware.softwareVersion, 3) As bigint) = 8 Then
'2025-07-08'
Else ''
End As EOLDate,
tblsoftware.AssetID
From tblsoftware
Inner Join tblSoftwareUni On tblSoftwareUni.SoftID = tblsoftware.softID
Where (tblSoftwareUni.softwareName Like '%Visual%Studio%2012%' Or
tblSoftwareUni.softwareName Like '%Visual%Studio%2013%' Or
tblSoftwareUni.softwareName Like '%Visual%Studio%2015%' Or
tblSoftwareUni.softwareName Like '%Visual%Studio%2017%' Or
tblSoftwareUni.softwareName Like '%Visual%Studio%2019%' Or
tblSoftwareUni.softwareName Like '%Visual%Studio%2022%')) As subquery1
On subquery1.AssetID = tblAssets.AssetID
Where subquery1.Software Like '%Visual%Studio%' And
subquery1.Software Not Like '%Installer%' And subquery1.Software Not
Like '%tools%' And subquery1.Software Not
Like '%bootstrapper%' And subquery1.Publisher Like '%Microsoft%' 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,
tsysOS.OSname As OS,
tblAssets.SP,
subquery1.Software,
subquery1.Version,
subquery1.Publisher,
subquery1.EOLDate,
Case
When 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 tblsoftware.softwareVersion Like '8.%' Then '2016-07-12'
When tblsoftware.softwareVersion Like '9.%' Then '2020-01-01'
When tblsoftware.softwareVersion Like '10.%' Then '2020-07-14'
When tblsoftware.softwareVersion Like '11.%' Then '2023-01-10'
When tblsoftware.softwareVersion Like '12.%' Then '2024-04-09'
When tblsoftware.softwareVersion Like '14.%' Then '2025-10-14'
When tblsoftware.softwareVersion Like '15.%' Then '2027-01-11'
When tblsoftware.softwareVersion Like '16.%' Then '2028-01-11'
When tblsoftware.softwareVersion Like '17.%' Then '2029-04-10'
When tblsoftware.softwareVersion Like '18.%' Then '2030-10-08'
When tblsoftware.softwareVersion Like '19.%' Then '2033-01-11'
Else ''
End As EOLDate,
tblsoftware.AssetID
From tblsoftware
Inner Join tblSoftwareUni On tblSoftwareUni.SoftID = tblsoftware.softID
Where (tblSoftwareUni.softwareName Like '%Team%Foundation%server%2013%' Or
tblSoftwareUni.softwareName Like '%Team%Foundation%server%2015%' Or
tblSoftwareUni.softwareName Like '%Team%Foundation%server%2017%' Or
tblSoftwareUni.softwareName Like '%Team%Foundation%server%2018%' Or
tblSoftwareUni.softwareName Like '%Azure%Devops%server%2019%' Or
tblSoftwareUni.softwareName Like '%Azure%Devops%server%2020%'Or
tblSoftwareUni.softwareName Like '%Azure%Devops%server%2022%')) As subquery1
On subquery1.AssetID = tblAssets.AssetID
Where (subquery1.Software Like '%Team%Foundation%Server%' or
subquery1.Software Like '%Azure%Devops%server%')
And subquery1.Publisher Like '%Microsoft%' 
And tblState.Statename = 'Active'

Show

Hide

NO CREDIT CARD REQUIRED

Ready to get started?
You’ll be up and running in no time.

Explore all our features, free for 14 days.