In the ever-evolving world of technology, keeping tabs on when software reaches its end-of-life (EOL) or end-of-support (EOS) is crucial. Why? Because once a product hits EOL, it stops receiving security updates, bug fixes, and technical support from the vendor. This leaves systems vulnerable to cyber threats, compliance issues, and operational headaches. For IT professionals, developers, and even casual users managing personal devices, knowing these dates can mean the difference between a secure environment and a potential breach. According to a comprehensive guide on EOL and EOS, these milestones mark when vendors shift focus to newer versions, often leaving older ones exposed.
Enter a handy PowerShell script crafted by myself (@leeburridge), that simplifies this process. Released on January 26, 2026, the script, aptly named Get-Eol.ps1, pulls EOL and support lifecycle data directly from reliable online sources. It’s a straightforward tool designed to query information for various products, making it easier to plan upgrades, assess risks, and stay ahead of obsolescence. In this post, we’ll dive deep into what EOL means, why it matters, how this script works, and how you can get involved in enhancing it.
Understanding End-of-Life and End-of-Support: The Basics
efore we jump into the script, let’s break down the concepts. EOL typically refers to the date when a software or hardware product is no longer sold or actively developed. EOS, often used interchangeably but sometimes distinctly, is when official support— including patches and assistance—ceases. For instance, Microsoft’s Windows 10 reached its EOS on October 14, 2025, meaning no more free updates after that point. This isn’t just about operating systems; it applies to everything from mobile devices like iPhones to development frameworks like Node.js.
The implications are significant:
- Security Risks: Unsupported software is a prime target for exploits. The 2021 Log4j vulnerability, for example, highlighted how unpatched libraries in EOL products can lead to widespread breaches.
- Compliance and Cost: Businesses must comply with regulations like GDPR or HIPAA, which often require up-to-date systems. Delaying upgrades can result in hefty fines or unexpected migration expenses.
- Planning Efficiency: Knowing EOL dates allows for proactive budgeting and resource allocation. A report from the Center for Internet Security notes that tracking EOS software helps mitigate risks in critical infrastructure.
Resources like the Multi-State Information Sharing and Analysis Center (MS-ISAC) provide monthly reports on upcoming EOS dates for popular software, emphasizing the need for ongoing vigilance.
Introducing Get-Eol.ps1: Your EOL Data Fetcher
My script is a lightweight, open-source PowerShell tool that queries the endoflife.date API. A comprehensive, community-driven database covering over 380 products. This API aggregates lifecycle information from official vendor announcements, making it a one-stop shop for reliable data.
How It Works
The script is simple yet effective. Here’s a breakdown:
- Core Functionality: It sends a GET request to https://endoflife.date/api/<product>.json, where <product> is a slug like ‘windows’, ‘iphone’, or ‘nodejs’. The response includes details for each release cycle, such as release date, EOL date, latest version, long-term support (LTS) status, support end date, and extended support end date.
- Parameters:
- -Product (mandatory): The product slug to query. Examples include ‘windows’ for Microsoft Windows versions or ‘nodejs’ for Node.js releases.
- -Csv (switch): Exports the results to a CSV file for easy analysis in tools like Excel.
- -CsvPath (optional): Specifies a custom path for the CSV output; defaults to <product>_eol.csv in the current directory if omitted.
- -Help (switch): Displays usage instructions and examples.
- Output: By default, results print to the console in a readable format, listing key details for each cycle separated by dashes. If -Csv is used, it generates a UTF-8 encoded CSV with columns for Product, Cycle, ReleaseDate, EndOfLifeDate, LatestVersion, LTS, SupportEndDate, ExtendedSupportEndDate, and MoreInfo (if available).
For example, running ./Get-Eol.ps1 -Product windows might output something like:
Product : windows
Cycle : 11
Release Date : 2021-10-05
End of Life Date : 2025-10-14
Latest Version : 23H2
LTS : False
Support End Date : 2025-10-14
Extended Support End Date: False
(This is illustrative; actual data comes from the API.)
The script includes basic error handling, like validating the product slug and catching API failures, ensuring it’s user-friendly even for beginners.
Why This Script Stands Out
In a sea of manual checks and scattered vendor pages, Get-Eol.ps1 automates the grunt work. It’s particularly useful for sysadmins scripting bulk checks or integrating into larger automation workflows. Plus, being PowerShell-based, it’s native to Windows environments but runnable on cross-platform PowerShell setups.
Get the Script and Start Using It
Ready to give it a spin? Head over to the GitHub repository and download Get-Eol.ps1 directly: https://github.com/DigitalSaviour/Useful-PowerShell-Scripts/blob/main/Get-Eol.ps1. Installation is as simple as saving the file and running it from your PowerShell prompt. No dependencies beyond standard PowerShell cmdlets like Invoke-RestMethod.
Fork the repo, add new API calls, handle multiple sources with fallback logic, or enhance output formats (like JSON for API integrations). Share your improvements via pull requests—Lee and the community would love to see it evolve into a more robust tool. Who knows? Your contribution could help countless users stay secure in an increasingly complex tech landscape.



