azureblog.co.uk
← cd ~/posts

10 November is the biggest end-of-support day of the year: what ends, how to find it, and what to move to

.NET 8 and 9, PowerShell 7.4 and 7.5, the Azure Functions in-process model, Windows 11 23H2 Enterprise and Education, and IoT Edge 1.5 all reach end of support on Tuesday 10 November 2026, which is also Patch Tuesday. Here's how to find each one in your estate and what to move it to.

AzureNEW5 min read✓ checked 29 Oct 2026What's new · Azure · Windows
On this page
  1. .NET 8 and .NET 9
  2. Azure Functions: the in-process model
  3. PowerShell 7.4 and 7.5
  4. Windows 11 23H2 Enterprise and Education
  5. Azure IoT Edge 1.5
  6. The checklist for the next 12 days
  7. Sources

Most end-of-support dates arrive one at a time. Tuesday 10 November 2026 brings six at once, and it's also Patch Tuesday. For most of these products, the November updates are the last they'll ever get.

Nothing switches off on the day. Apps keep running and devices keep booting. What stops is security fixes, so anything still on these versions afterwards picks up a new unpatched flaw every month.

End of support in

Countdown to Tuesday 10 November 2026 (UTC).

Ends on 10 November
  • .NET 8 (LTS) and .NET 9 (STS)
  • PowerShell 7.4 (LTS) and 7.5
  • Azure Functions in-process model
  • Windows 11 23H2 Enterprise, Education and IoT Enterprise
  • Azure IoT Edge 1.5 LTS
Move to
  • .NET 10 (LTS), supported to November 2028
  • PowerShell 7.6 (LTS), supported to 14 November 2028
  • Isolated worker model on .NET 10
  • Windows 11 25H2, supported to 10 October 2028
  • IoT Edge 1.6 LTS, supported to 14 November 2028
What ends on 10 November, and what Microsoft says to move to.

.NET 8 and .NET 9

.NET 8 was a long-term support release, so ending in November 2026 was always the plan. .NET 9 ends on the same day because Microsoft extended support for short-term releases from 18 to 24 months. After 10 November, neither gets security fixes. Microsoft says there may be one final update on the day if there's a known critical issue.

The move is to .NET 10, a long-term support release supported until November 2028. For most projects it starts with changing TargetFramework to net10.0 and working through the .NET 10 breaking changes list.

Find .NET 8 and 9 apps in Azure App Service and Functions

This query lists every Linux web app, function app and slot whose stack is .NET 8 or 9, across every subscription you can see. Run it in Resource Graph Explorer:

kql8 lines
resources
| where type =~ "microsoft.web/sites" or type =~ "microsoft.web/sites/slots"
| mv-expand p = properties.siteProperties.properties
| where tostring(p.name) =~ "LinuxFxVersion"
| extend stack = tostring(p.value)
| where stack matches regex @"(?i)^dotnet(core|-isolated)?\|(8|9)\.0"
| project name, kind, resourceGroup, subscriptionId, stack
| order by stack asc

Windows apps keep their .NET version in a setting Resource Graph doesn't show, so check them with Azure PowerShell. This works through the current subscription and lists any web or function app on .NET 8 or 9:

powershell9 lines
Get-AzWebApp | ForEach-Object {
    $c = (Get-AzWebApp -ResourceGroupName $_.ResourceGroup -Name $_.Name).SiteConfig
    [pscustomobject]@{
        App     = $_.Name
        Group   = $_.ResourceGroup
        Windows = $c.NetFrameworkVersion
        Linux   = $c.LinuxFxVersion
    }
} | Where-Object { $_.Windows -in 'v8.0', 'v9.0' -or $_.Linux -match '^DOTNET.*\|(8|9)\.0' }

Run Set-AzContext -Subscription '<subscription id>' first to check another subscription.

Find .NET 8 and 9 on servers and build agents

Run this on the machine to see every runtime installed:

text1 line
dotnet --list-runtimes

Apps you bought rather than built are the awkward ones. Microsoft's advice is to ask the vendor for a version that targets .NET 10.

Azure Functions: the in-process model

Support for .NET function apps on the in-process model ends on 10 November, the same day as .NET 8. Microsoft's Azure Functions notice also covers apps that are already on the isolated worker model but still target .NET 8 or 9: they keep running, but security updates stop.

How does your function app run today?
In-process modelMigrate to the isolated worker model, then target .NET 10
Isolated worker on .NET 8 or 9Upgrade straight to .NET 10
On the Linux Consumption planMove to the Flex Consumption plan before upgrading to .NET 10
Microsoft's upgrade path for function apps, from its .NET 8 and 9 notice for Azure Functions.

The Resource Graph query above catches function apps too. The full migration, including Microsoft's script to find in-process apps and how to switch with a staging slot and no downtime, is in the Azure Functions post.

PowerShell 7.4 and 7.5

PowerShell follows the .NET it's built on, so PowerShell 7.4 (built on .NET 8) and PowerShell 7.5 (built on .NET 9) both reach end of support on 10 November. The move is to PowerShell 7.6, the current long-term support release, supported until 14 November 2028.

Check the version on any machine with:

text1 line
$PSVersionTable.PSVersion

The places PowerShell 7 hides are the ones nobody logs in to: automation servers, build agents, jump boxes and scheduled task hosts. Check those first. On managed endpoints, search for PowerShell 7 under Apps > Monitor > Discovered apps in Intune to see which versions are out there.

Windows 11 23H2 Enterprise and Education

Home and Pro editions of 23H2 have already stopped getting updates. On 10 November, Enterprise, Education and IoT Enterprise editions of 23H2 follow, and the November security update is their last.

Microsoft's recommended target is Windows 11 25H2, which Enterprise and Education editions get updates for until 10 October 2028. 24H2 is still supported, but only until 12 October 2027, so going straight to 25H2 saves you doing this again next year.

Find 23H2 devices in Intune

23H2 is build 22631. In the Intune admin center, go to Devices > Windows and filter or sort by OS version for anything starting 10.0.22631. To get a list you can work from, use PowerShell:

powershell5 lines
Connect-MgGraph -Scopes DeviceManagementManagedDevices.Read.All
Get-MgDeviceManagementManagedDevice -Filter "operatingSystem eq 'Windows'" -All |
    Where-Object OsVersion -like '10.0.22631*' |
    Select-Object DeviceName, UserPrincipalName, OsVersion, LastSyncDateTime |
    Export-Csv .\windows-11-23h2-devices.csv -NoTypeInformation

Then move them with a feature update policy targeting 25H2, from the Feature updates tab of Windows updates in the Intune admin center. Devices that haven't synced for weeks won't pick it up, so the LastSyncDateTime column is worth sorting by.

Azure IoT Edge 1.5

If you run IoT Edge, 1.5 LTS support ends on 10 November. The supported release is IoT Edge 1.6 LTS, supported until 14 November 2028. Check a device with iotedge version, and check your client SDK version before upgrading: 1.6 pairs with a newer SDK than 1.5.

The checklist for the next 12 days

  1. Run the Resource Graph query and the Azure PowerShell check, and list every app on .NET 8 or 9.
  2. List every function app still on the in-process model, and plan the migration for the ones that matter most.
  3. Check automation servers, build agents and jump boxes for PowerShell 7.4 and 7.5, and move them to 7.6.
  4. Export your 23H2 devices and target them with a 25H2 feature update policy.
  5. Ask vendors of any bought-in .NET apps when they'll support .NET 10.
  6. For anything you can't move by 10 November, write down why and when it will move, and limit its exposure in the meantime.

Every date is also on the deadline timeline, which you can subscribe to as a calendar.

Sources