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. Overzicht van breaking changes, nieuwe parameters, modules en experimentele features.

Abstracte technische illustratie bij het artikel over PowerShell 7.6 LTS
In dit artikel
  1. LTS: waarom dit de versie is om op te standaardiseren
  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 de aanbevolen versie voor productie-automatisering. De release is gebouwd op .NET 10, zelf ook een LTS-versie.

Voor organisaties die beheertaken in PowerShell hebben vastgelegd, is een nieuwe LTS het natuurlijke moment om de basis te vernieuwen. Dit artikel loopt door wat 7.6 brengt, waar bestaande scripts op moeten worden nagekeken en hoe de release beschikbaar komt.

LTS: waarom dit de versie is om op te standaardiseren

PowerShell 7 kent twee soorten releases: reguliere versies die kort worden ondersteund, en LTS-versies met een langere ondersteuningsperiode, gekoppeld aan de LTS-cyclus van het onderliggende .NET. Voor beheerautomatisering die maanden of jaren moet blijven draaien is een LTS de logische keuze: er zijn minder gedwongen upgrades en de basis blijft langer stabiel.

De aankondiging noemt geen concrete einddatum voor de ondersteuning van 7.6; die volgt uit het LTS-beleid van PowerShell en .NET 10. Wat wél vaststaat: 7.6 is de opvolger van 7.4 als LTS, en de aankondiging positioneert 7.6 uitdrukkelijk als de versie voor productie.

Bijgewerkte modules

Drie modules die met PowerShell worden meegeleverd zijn bijgewerkt:

  • PSReadLine – de bewerkingslaag van de console
  • Microsoft.PowerShell.PSResourceGet – het modulebeheer (opvolger van PowerShellGet)
  • 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 echter met de modulegekwalificeerde naam aanroept (ThreadJob\Start-ThreadJob), moet die aanpassen naar Microsoft.PowerShell.ThreadJob\Start-ThreadJob. Dat staat in de documentatie onder de breaking changes.

Breaking changes

De lijst met wijzigingen die bestaand gedrag breken is kort, maar elk punt kan een script raken:

WijzigingMogelijk effect
Join-Path -ChildPath accepteert nu string[]Code die het parametertype controleert of via reflectie bindt, kan anders reageren; gewoon gebruik met één string blijft werken
WildcardPattern.Escape() escapet losse backticks correctPatronen met een backtick kunnen andere uitvoer opleveren dan in 7.4
Spatie aan het einde van een event-/tracebronnaam verwijderdLogging of filters die op de oude naam met spatie matchen, matchen niet meer
ThreadJob vervangen door Microsoft.PowerShell.ThreadJobAlleen relevant bij modulegekwalificeerde aanroepen

Testvolgorde bij een LTS-overstap

Draai bestaande scripts eerst in 7.6 naast 7.4, met dezelfde invoer, en vergelijk uitvoer en foutmeldingen. De breaking changes hierboven zijn klein en goed te herkennen; de moduleupdates (PSReadLine, PSResourceGet) zijn het meest zichtbaar in interactief gebruik en het minst in onbeheerde jobs.

Nieuwe parameters en cmdlet-verbeteringen

Een selectie uit de cmdlet-wijzigingen die in de praktijk het snelst nut hebben:

  • 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, handig als meerdere modules dezelfde naam gebruiken.
  • New-Item -Target behandelt de waarde nu letterlijk, wat het aanmaken van koppelingen naar paden met jokertekens voorspelbaarder maakt.
  • Start-Process -Wait pollt efficiënter, wat merkbaar is in scripts die veel externe processen na elkaar starten.

Daarnaast zijn er de nieuwe aliassen PSForEach() en PSWhere() voor de intrinsieke methoden .ForEach() en .Where(). De oude namen blijven werken; de nieuwe voorkomen naamconflicten met eigen leden op objecten.

Tabaanvulling

Een groot deel van de changelog gaat over tab completion. De verbeteringen zijn talrijk en individueel klein: 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 lussen of via omleiding zijn toegewezen worden herkend, en de type-inferentie is op meerdere punten verbeterd. Voor interactief beheerwerk is het 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 ~ naar de thuismap bij native opdrachten op Windows
  • PSRedirectToVariable – uitvoer omleiden naar een variabele
  • PSSubsystemPluginModel – het pluginmodel voor subsystemen

Twee nieuwe experimentele features komen erbij:

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

Die laatste is interessant voor wie configuratie van beheerwerkstations declaratief wil vastleggen, maar het blijft experimenteel en moet expliciet worden ingeschakeld.

Installatie en distributie

PowerShell 7.6 is beschikbaar via de GitHub-releases en de installatiehandleiding op Microsoft Learn. Het macOS-pakket (PKG) is met deze release genotariseerd en ondertekend door Microsoft, wat de installatie op beheerde Macs vereenvoudigt. Distributie via Microsoft Update volgt afzonderlijk en niet op dezelfde dag als de GitHub-release; de aankondiging noemt daarvoor geen datum.

Voor Windows-omgevingen die PowerShell 7 via Intune of een ander beheertool uitrollen, blijft het MSI-pakket de gangbare route. Wie onlangs de mogelijkheid heeft bekeken om Win32-apps in Intune met een PowerShell-script te installeren, vindt daarover meer 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; ook daar geldt dat een test in 7.6 het snelst duidelijkheid geeft.

De aanbeveling uit de aankondiging is eenduidig: 7.6 is de LTS voor productie. Wie nog op 7.4 draait, heeft nu een duidelijk doel voor de volgende onderhoudsronde.

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.