Onder andere Windows PowerShell 5.1 is gebouwd boven op .NET Framework v4.5. Met de release van PowerShell 6.0 werd PowerShell voor het eerst een opensource-project dat is gebouwd op .NET Core 2.0. Als u overstapt van .NET Framework naar .NET Core, kan PowerShell een platformoverschrijdende oplossing worden. PowerShell voer je uit in Windows, macOS en maar ook bijvoorbeeld in Linux.
Daarnaast zijn er wijzigingen die voortvloeien uit de verschillen tussen .NET Framework en .NET Core. De meest opvallende verschillen zijn ten eerste in de beschikbaarheid en het gedrag van PowerShell-cmdlets tussen Windows- en niet-Windows-platforms en ten tweede de wijzigingen die voortvloeien uit de verschillen tussen .NET Framework en .NET Core. Daarom is het essentieel om de artikelen “Wat is er nieuw” voor elke versie te raadplegen voor een gedetailleerde bespreking van wijzigingen tussen versies en het toevoegen van nieuwe functies. Tot slot biedt PowerShell 7 een Windows PowerShell-compatibiliteitsfunctie, waardoor u Windows PowerShell-modules kunt gebruiken waarvoor dus nog steeds het volledige framework is vereist
Windows PowerShell 5.1 versus PowerShell
Zie de artikelen Wat is er nieuw voor elke versie voor onder andere een gedetailleerde bespreking van wijzigingen tussen versies en het toevoegen van nieuwe functies.
- Wat is er nieuw in PowerShell 7.5?
- Wat is er nieuw in PowerShell 7.4?
- Wat is er nieuw in PowerShell 7.3?
- Wat is er nieuw in PowerShell 7.2?
- Wat is er nieuw in PowerShell 7.1?
- Wat is er nieuw in PowerShell 7.0?
- Wat is er nieuw in PowerShell 6.x?
.NET Framework versus .NET Core
PowerShell in Linux en macOS maakt gebruik van .NET Core. Dit is een subset van het volledige .NET Framework in Microsoft Windows. Dit is vooral belangrijk omdat PowerShell directe toegang biedt tot de onderliggende frameworktypen en -methoden. Als gevolg hiervan kunnen scripts die onder andere worden uitgevoerd in Windows, mogelijk niet worden uitgevoerd op niet-Windows-platforms vanwege de verschillen in de frameworks.
Elke nieuwe versie van PowerShell is gebaseerd op een nieuwere versie van .NET. Er kunnen fouten optreden in .NET die van invloed zijn op PowerShell.
- PowerShell 7.5 – gebouwd op .NET 9.0
- PowerShell 7.4 – gebouwd op .NET 8.0
- PowerShell 7.3 – Gebouwd op .NET 7.0
- PowerShell 7.2 (LTS-current) – gebouwd op .NET 6.0 (LTS-current)
- PowerShell 7.1 – gebouwd op .NET 5.0
- PowerShell 7.0 (LTS) – gebouwd op .NET Core 3.1 (LTS)
- PowerShell 6.2 – gebouwd op .NET Core 2.1
- PowerShell 6.1 – gebouwd op .NET Core 2.1
- PowerShell 6.0 – gebouwd op .NET Core 2.0
Met de komst van .NET Standard 2.0 kan PowerShell veel traditionele Windows PowerShell-modules laden zonder te wijzigen. Daarnaast bevat PowerShell 7 een Windows PowerShell-compatibiliteitsfunctie waarmee u Windows PowerShell-modules kunt gebruiken waarvoor nog steeds het volledige framework is vereist.
Zie voor meer informatie:
Compatibiliteit met PowerShell 7-modules
about_Windows_PowerShell_Compatibility
Voor diegene die PowerShell ISE prefereren boven Visual Studio Code, is er de volgende functie.
Function Load-Powershell_7{
function New-OutOfProcRunspace {
param($ProcessId)
$connectionInfo = New-Object -TypeName System.Management.Automation.Runspaces.NamedPipeConnectionInfo -ArgumentList @($ProcessId)
$TypeTable = [System.Management.Automation.Runspaces.TypeTable]::LoadDefaultTypeFiles()
#$Runspace = [System.Management.Automation.Runspaces.RunspaceFactory]::CreateOutOfProcessRunspace($connectionInfo,$Host,$TypeTable)
$Runspace = [System.Management.Automation.Runspaces.RunspaceFactory]::CreateRunspace($connectionInfo,$Host,$TypeTable)
$Runspace.Open()
$Runspace
}
$Process = Start-Process PWSH -ArgumentList @("-NoExit") -PassThru -WindowStyle Hidden
$Runspace = New-OutOfProcRunspace -ProcessId $Process.Id
$Host.PushRunspace($Runspace)
}
Load-Powershell_7
Tot slot. Omdat ISE niet langer meer onderdeel is van PowerShell, wordt vanaf nu gekozen voor Visual Studio Code als nieuwe code editor voor PowerShell scripts. Een video hierover vind je op Youtube:
Meer informatie over PowerShell op de Microsoft site. Meer informatie over de auteur vind je op de Digitale Mels site.