Mohamed ZagoudiAdelix Automation

Automatisering

PowerShell 7.6 is de nieuwe LTS-release: wat verandert er voor beheerscripts

PowerShell 7.6 is algemeen beschikbaar, gebouwd op .NET 10 en de volgende LTS. Breaking changes, nieuwe parameters, modules, experimentele features en ondersteuning.

Foto bij het artikel over PowerShell 7.6 LTS

Foto: Lorenzo Cafaro via wikimedia (Openverse) · CC0 1.0

In dit artikel
  1. LTS: wat dat betekent
  2. Bijgewerkte modules
  3. Breaking changes
  4. Nieuwe parameters en cmdlet-verbeteringen
  5. Tabaanvulling
  6. Experimentele features
  7. Installatie en distributie
  8. Wat dit betekent voor bestaande automatisering
  9. Bronnen

Op 18 maart 2026 maakte het PowerShell-team de algemene beschikbaarheid van PowerShell 7.6 bekend. De aankondiging, geschreven door Jason Helmick, noemt 7.6 de volgende Long Term Support-release en positioneert haar als de aanbevolen versie voor productie-automatisering. De release is gebouwd op .NET 10, zelf ook een LTS-versie, en zet daarmee de koppeling tussen PowerShell en het moderne .NET-platform voort.

Volgens de aankondiging lag de nadruk in de previewcyclus op betrouwbaarheid: consistentie, het oplossen van langlopende problemen en gedrag dat op alle platforms gelijk is. Dit artikel loopt door wat 7.6 brengt, waar bestaande scripts op kunnen worden nagekeken en hoe de ondersteuning is geregeld.

LTS: wat dat betekent

PowerShell 7 kent volgens de ondersteuningsdocumentatie drie soorten releases. Een Stable-release verschijnt tussen LTS-releases in, kan nieuwe functies bevatten en wordt ondersteund tot circa zes maanden na de volgende LTS. Een LTS-release is gebonden aan een LTS-release van .NET; updates daarop bevatten alleen kritieke beveiligingsupdates en servicingfixes die zijn bedoeld om bestaande workloads zo min mogelijk te raken. Preview-releases zijn niet voor productie bedoeld.

De einddatums volgen het ondersteuningsbeleid van de onderliggende .NET-versie. Voor de huidige versies geeft de lifecycle-tabel:

VersieReleaseEinde ondersteuning.NET
PowerShell 7.6 (LTS)18 maart 202614 november 2028.NET 10
PowerShell 7.523 januari 202510 november 2026.NET 9
PowerShell 7.4 (LTS)16 november 202310 november 2026.NET 8

7.6 is daarmee de opvolger van 7.4 als LTS; 7.5 was een Stable-release. Voor 7.4 en 7.5 staat het einde van de ondersteuning op dezelfde dag gepland, wat de komende maanden een natuurlijk moment maakt om beheerautomatisering naar 7.6 te verplaatsen. Microsoft ondersteunt per release alleen de laatste updateversie.

Bijgewerkte modules

Drie modules die met PowerShell worden meegeleverd zijn bijgewerkt:

  • PSReadLine – de bewerkingslaag van de console
  • Microsoft.PowerShell.PSResourceGet – het modulebeheer
  • Microsoft.PowerShell.ThreadJob – vervangt de module ThreadJob

Die laatste verdient aandacht. De cmdlet Start-ThreadJob is niet veranderd, dus de meeste scripts merken niets. Wie de cmdlet met de modulegekwalificeerde naam aanroept (ThreadJob\Start-ThreadJob), past die volgens de documentatie aan naar Microsoft.PowerShell.ThreadJob\Start-ThreadJob.

Breaking changes

De aankondiging noemt drie wijzigingen die bestaand gedrag breken, bedoeld om de consistentie op lange termijn te verbeteren:

WijzigingToelichting uit de bronnen
Join-Path -ChildPath accepteert nu string[]Meerdere subpaden kunnen in één parameter worden meegegeven, zodat -AdditionalChildPath minder vaak nodig is
WildcardPattern.Escape() escapet losse backticks correctPatronen met een losse backtick leveren nu een correct ge-escaped resultaat
Spatie aan het einde van de tracebronnaam GetHelpCommand verwijderdRelevant voor wie op deze tracebron filtert

Daar komt de hernoemde ThreadJob-module bij, die alleen bij modulegekwalificeerde aanroepen effect heeft.

Waar de wijzigingen zichtbaar zijn

De breaking changes zijn beperkt tot randgevallen en goed te herkennen in een test met dezelfde invoer naast 7.4. De moduleupdates (PSReadLine, PSResourceGet) zijn het meest zichtbaar in interactief gebruik en het minst in onbeheerde jobs.

Nieuwe parameters en cmdlet-verbeteringen

De aankondiging noemt de volgende toevoegingen aan bestaande opdrachten:

  • Get-Clipboard -Delimiter – klembordinhoud direct splitsen op een scheidingsteken.
  • Register-ArgumentCompleter -NativeFallback – één algemene completer registreren voor alle native opdrachten die geen eigen completer hebben.
  • Get-Command -ExcludeModule – bij het zoeken naar opdrachten modules uitsluiten.
  • New-Item -Target behandelt de waarde nu letterlijk.
  • Start-Process -Wait pollt efficiënter.

Op engineniveau komen daar PSForEach() en PSWhere() bij als aliassen voor de intrinsieke methoden .ForEach() en .Where(). De foutuitvoer (stderr) van de consolehost respecteert nu de omgevingsvariabele NO_COLOR, de SystemPolicy-API's zijn op Unix zichtbaar maar zonder effect zodat ze in PowerShellStandard.Library kunnen worden opgenomen, en DnsNameList op X509Certificate2 gebruikt X509SubjectAlternativeNameExtension.EnumerateDnsNames().

De uitgebreide lijst op Microsoft Learn, terug te voeren op de previewreleases van 2025, bevat daarnaast een reeks kleinere correcties die in beheerscripts merkbaar kunnen zijn:

  • ConvertFrom-Json negeert commentaar binnen array-literals.
  • -Debug activeert niet langer onbedoeld de ShouldProcess-prompt.
  • Write-Host respecteert OutputRendering = PlainText.
  • Out-GridView gebruikt niet langer de verouderde BinaryFormatter.
  • Get-Service negeert veelvoorkomende fouten bij het ophalen van niet-kritieke eigenschappen van een service.
  • Casten naar [bigint] ondersteunt duizendtalscheidingstekens.
  • Exitcodes van native opdrachten worden ook in hexadecimale vorm getoond.
  • De standaardtimeout van feedbackproviders ging van 300 naar 1000 ms.
  • Met de omgevingsvariabele POWERSHELL_DIAGNOSTICS_OPTOUT kan de named-pipe-listener worden uitgeschakeld.

Tabaanvulling

De aankondiging spreekt van "dozens of tab completion improvements": betere padcompletion over providers heen, waardecompletion voor parameters van meer cmdlets, completion in meer contexten en scopes, en completion van modules op hun korte naam. De gedetailleerde lijst noemt onder meer: aliassen worden naar de werkelijke opdracht uitgebreid, de HelpMessage van een parameter verschijnt als tooltip, dubbele modulenamen en dubbele opdrachtnamen worden uit de resultaten gefilterd, variabelen die in Do-lussen of via omleiding zijn toegewezen worden herkend, en de type-inferentie is op meerdere punten verbeterd. Voor interactief beheerwerk is het gezamenlijke effect groter dan de afzonderlijke punten doen vermoeden.

Experimentele features

PowerShell gebruikt experimentele features om functionaliteit eerst optioneel aan te bieden. In 7.6 zijn vier daarvan mainstream geworden en dus standaard actief:

  • PSFeedbackProvider – het raamwerk voor feedbackproviders in de console
  • PSNativeWindowsTildeExpansion – uitbreiding van ~ bij native opdrachten op Windows
  • PSRedirectToVariable – uitvoer omleiden naar een variabele
  • PSSubsystemPluginModel – het pluginmodel voor subsystemen

Twee nieuwe experimentele features komen erbij:

  • PSSerializeJSONLongEnumAsNumber – ConvertTo-Json behandelt grote enums als getallen
  • PSProfileDSCResource – een DSC v3-resource voor het beheren van PowerShell-profielen

Die laatste is relevant voor wie de configuratie van beheerwerkstations declaratief wil vastleggen. Experimentele features zijn volgens de ondersteuningsdocumentatie niet bedoeld voor productie en worden op best-effort-basis ondersteund.

Installatie en distributie

De aankondiging verwijst voor installatie naar de handleiding op Microsoft Learn voor Windows, Linux en macOS. Uit de changelog van 7.6.0 blijkt dat er voor Debian 13 en RHEL 10 pakketten aan packages.microsoft.com zijn toegevoegd en dat er voor macOS aparte LTS- en niet-LTS-pakketten worden gebouwd. De .deb- en .rpm-pakketten zijn volgens de ondersteuningsdocumentatie beschikbaar via packages.microsoft.com; op Linux gelden de ondersteuningsvensters van de distributies (Ubuntu, Debian, RHEL, Alpine) als bovengrens.

Voor Windows-omgevingen die PowerShell 7 via Intune uitrollen, is een recente ontwikkeling relevant: Win32-apps kunnen sinds januari met een PowerShell-script als installer worden ingericht, zoals beschreven in Intune januari 2026: PowerShell-script als installer voor Win32-apps.

Wat dit betekent voor bestaande automatisering

De overstap van 7.4 naar 7.6 is voor de meeste scripts klein. De breaking changes zijn beperkt tot randgevallen; de winst zit in de nieuwe .NET-basis, de bijgewerkte modules en de vele kleine verbeteringen in completion en cmdlets. Scripts die tegen Microsoft Graph of Exchange Online werken, zoals beschreven in Message trace in Exchange Online via Microsoft Graph, zijn afhankelijk van hun eigen modules en niet van de PowerShell-versie zelf; een test in 7.6 geeft daar het snelst duidelijkheid.

De aankondiging sluit af met een vooruitblik: previewreleases van 7.7 gaan door en geven vroege toegang tot nieuwe functionaliteit. Voor productie is de boodschap eenduidig: 7.6 is de LTS, met ondersteuning tot november 2028.

Bronnen

Over de auteur

Mohamed Zagoudi

Freelance systeembeheerder & ICT-coördinator

Dit artikel is gebaseerd op eigen praktijkervaring in ICT-beheer en automatisering en bevat geen verwijzingen naar specifieke klanten.

Vragen over dit onderwerp?

Stuur me gerust een bericht. Ik reageer zelf.