Software-update: PowerShell 7.3.3

PowerShell logo (79 pix) Microsoft heeft versie 7.3.3 van PowerShell uitgebracht. PowerShell is een objectgeoriënteerde shell- en scripttaal voor taakautomatisering, die bestaat uit een commandlineshell, een scripttaal en een framework voor configuratiebeheer. De software bestaat al sinds 2006 en is sinds versie 2.0 standaard onderdeel van Windows. Sinds eind 2016 is het open source en ook beschikbaar voor Linux en macOS. PowerShell 7.3 is gebouwd met de eveneens net uitgekomen .NET versie 7. In versie 7.3.3 zijn verder nog de volgende veranderingen en verbeteringen doorgevoerd:

Build and Packaging Improvements
  • Bump to use .NET 7.0.3
    • Update third party notices for v7.3.3 (Internal 24353)
    • Add tool to trigger license information gathering for NuGet modules (#18827)
    • Update global.json to 7.0.200 for v7.3.3 (Internal 24334)
    • Update cgmanifest for v7.3.3 (Internal 24338)

Chocolatey

Versienummer 7.3.3
Releasestatus Final
Besturingssystemen Linux, macOS, Windows Server 2012, Windows 10, Windows Server 2016, Windows Server 2019, Windows 11
Website Microsoft
Download https://github.com/PowerShell/PowerShell/releases/tag/v7.3.3
Licentietype GPL

Door Bart van Klaveren

Downloads en Best Buy Guide

24-02-2023 • 07:51

27

Submitter: danmark_ori

Bron: Microsoft

Update-historie

Reacties (27)

27
27
17
2
0
10
Wijzig sortering
Waarom wordt powershell niet geleverd via Windows update, aangezien het een ingebouwd programma is?
Mijn windows 10 pc zit alsnog op powershell 5.1.19041.2364
Een aantal redenen:
  • PS7 is gebaseerd op .NET Core en niet het oude .NET Framework zoals PS5.
  • PS7 wordt nog heel actief ontwikkeld waardoor je veel updates zou krijgen.
  • PS7 is niet 100% compatible met oudere PS-versies. Scripts moeten getest en soms aangepast worden als je upgrade.
Om die redenen ziet Microsoft het als een nieuw product en niet simpelweg een upgrade. PS7 en PS5 worden ook parallel geinstalleerd in verschillende locaties zodat je de ene met pwsh.exe kunt aanroepen en de ander met powershell.exe.
Grote kans dat PS7 in een toekomstige Windows versie wordt opgenomen maar zover is het nog niet. Voor nu is het alleen voor de mensen die er bewust voor kiezen om naar PS7 te migreren.
Simpel gezegd:

Ps5 zit er nog ivm support en compatibility - Microsoft geeft meestal 10 jaar support; vanwege het bedrijfsleven kunnen ze dat niet per direct eruit halen (zie ook IE11)…

Vanaf 6 is het losgetrokken van Windows en open source (je kan het zelfs op Linux draaien want het is best een krachtige shell) maar ze hebben er toen wat dingen uit gesloopt die het hard aan Windows bonden…
je kan het zelfs op Linux draaien want het is best een krachtige shell
Overigens is er ook de omgekeerde beweging die probeert alle GNU coreutils ook beschikbaar te maken op Windows en Mac (en geschreven in Rust). Beide zijn beschikbaar onder een MIT license dus als developer heb je de keuze.
Voldeed Cygwin daar altijd al niet aan? Ooit even gebruikt in de XP-tijd als uitgebreid alternatief voor Putty.
Geen idee of je ook echt programma's in "stdlib" stijl kan compileren en uitvoeren die dan rechtsstreeks op je desktop komen.
Geen idee, dat heb ik maar heel beperkt gebruikt, vooral om C/C++ te compileren. Met Rust heb je vrijwel geen systeemafhankelijke bit- en bytesizes en andere lowlevel dingen zoals bestandspaden met / of \ etc. Alleen crossplatform een GUI maken in Rust is nog niet uitgekristalliseerd.
Nooit van Xilem gehoord. Ze willen een platform-onafhankelijke GUI zonder preloaded lib als gtk of qt? Ik verwacht dat MS en Apple dat wel gaan dwarsbomen met eigen standaarden, anders kun je straks gewoon blokken code uitvoeren zonder ergens systeemcomponenten voor nodig te hebben behalve voor werkende scherm-output.
Als je handmatig PowerShell 7 installeert dan kun je in de installer aanvinken dan je updates voor specifiek PowerShell 7 via Windows Update wilt ontvangen.

Geen idee waarom deze niet standaard meegeleverd wordt. Misschien dat het iets te maken heeft met bugs zoals deze https://github.com/PowerShell/PowerShell/issues/13138, waar de AppX module niet werkt in PowerShell 7.
Dat heeft bij mij nog nooit gewerkt. Nu heb ik hem via de store geïnstalleerd en is hij blijkbaar al up-to-date zonder dat ik het doorhad.
Geen idee. Het wordt wel verdeeld via de MS Store.
PS 7 is anders dan PS 5 en geen vervanging. Je kunt beiden naast elkaar draaien.
Met de installatie van msWindows krijg je een powershell mee. Voor zover ik het scherp heb is dat nu nog powershell 5.x bij de huidige versies. Dat wordt redelijk stabiel gehouden en ook met het mswindows updates bij gehouden.

De powershell hier is zoals je dat apart installeert op je eigen besturingssysteem. Dat installeer je bewust zelf en dus kan en mag je dat ook bewust en zelf bijwerken.

Dan is het nog hoe c.q. waar vandaan je deze powershell installeert. Via die zelfde route kan en zal ze ook bijgewerkt worden. Gebruik je ze vanuit de microsoft-software-winkel, dan is de update/upgrade ook via die route. Heb je ze zelf gedownload, dan mag je ook zelf aan de bak via die route.

Wel frappant als je in msWindows bij de updates hebt aangevinkt om alle microsoft software bij te werken dat die update dan niet werkt. Daarbij wel aangetekend: in dit geval is het 'update' en geen 'upgrade': niet alleen maar voor nieuwe functionaliteit wel voor het herstellen van issues.
Bestaat er een soort auto-complete, gebruikswijze, of ingebakken hulpfunctie die bij incidenteel gebruik kan helpen bij het wegwijs geraken in PowerShell in Windows?

Ik ben gewend lekker korte commando's in CMD (Windows) en Shell (Linux/Unix/Mac) te typen. Korte en composable commandos door het Batch/BASH script gereedschap.

Ik wil graag hetzelfde in Power Shell, maar ik zie niet hoe. Afgezien daar "cmd" te starten natuurlijk. De commando's en scripts zijn nogal lang en ik krijg de neiging om steeds een echte programmeertaal te gebruiken om het zelf doen.
Bestaat er een soort auto-complete, gebruikswijze, of ingebakken hulpfunctie die bij incidenteel gebruik kan helpen bij het wegwijs geraken in PowerShell in Windows?
Get-Help
Ik ben gewend lekker korte commando's in CMD (Windows) en Shell (Linux/Unix/Mac) te typen. Korte en composable commandos door het Batch/BASH script gereedschap.

Ik wil graag hetzelfde in Power Shell, maar ik zie niet hoe. Afgezien daar "cmd" te starten natuurlijk. De commando's en scripts zijn nogal lang en ik krijg de neiging om steeds een echte programmeertaal te gebruiken om het zelf doen.
Aliassen maken met Set-Alias

Persoonlijk raad ik dat echter af. Die aliassen moet je per machine inrichten, dat is niet effectief. Het is beter om je de volledige commando's aan te leren. overigens hoef je geen CMD te starten als je in PowerShell zit, alles werkt gewoon al.

Lees je even in op de structuur en de basis opbouw van de commando's, dat gaat een hoop helpen.
Get-Help
Vergeet de Help niet eerst even te updaten :)
Is wel lang, maar is wel goed.
https://youtu.be/UVUd9_k9C6A

[Reactie gewijzigd door ZaZ op 22 juli 2024 20:45]

Powershell is wel wat verbose van nature, maar een hoop zaken kan je wel flink verkorten.
Zo kort als bash zal het echter nooit worden.

In mijn optiek is de typecasting wat explicieter, maar dat heeft ook wel voordelen.
Get-InstalledModule
Get-Command -module 'ModuleName' | Get-Help

Geeft de volledige omschrijving van een commando in een module. Aliases worden hier ook getoond.
Wie nog cmd gebruikt, powershelm is echt veel makkelijker.

Gisteren moest ik bestanden mappen groeperen een bepaalde prefix. De lijst van prefixen had ik in excel, kwestie de formule te schrijven en prefix te vervangen
Move prefix* ..\moved\prefix-groep

Eerst geprobeerd met cmd, ook even chatgpt gebruikt, maar had geen zin om een batch uit de denken die ditzelfde kan
met textjoin of concat(enate) in excel kan je makkelijk commando's en lijsten combineren tot een kolom die je dan vervolgens gewoon in cmd (of eender welke shell) kan plakken en direct uitgevoerd worden. de drempel om het in cmd te doen is vaak een pak lager als je de commando's kent ipv ze te moeten gaan opzoeken, zeker als niet veel tijd hebt om er een volwaardig script voor te schrijven.

[Reactie gewijzigd door dasiro op 22 juli 2024 20:45]

Excel is een stuk toegankelijker om CMD commando's te schrijven ipv van een batch-file te maken.
Het lastige in excel is zijn die aanhalingstekens, daarom dat ik liever gebruik maak van substitutie.
maar het kan anders:
Methode 1: concateneren met &&
="Move """&A1&"*"" ""..\Groeperen\"&A1&" "&B1&""""
Methode 2: combineren met aanhalingtekens:
=TEKST.COMBINEREN("""";ONWAAR;"Move ";A1&"*";" ";"..\Groeperen\"&A1&" "&B1;)
Methode 3: Command schrijven met placeholder en deze in de volgende kolom substitueren:
Move "DosNummer*" "..\Groeperen\DosNummer DosTitel"
=SUBSTITUEREN(C1;"DosNummer";A1)
=SUBSTITUEREN(D1;"DosTitel";B1)
Oplossing in meer stappen (kolommen C & D), maar debuggen wordt gemakkelijker
De eerst kolom enkel platte tekst, geen formule, geen "="-teken
*Substitutie-functie is hoofdlettergevoelig
*Tabellen invoegen of namen geven aan cellen maakt het substitueren nog transparanter (klikken op het vak boven kolom A, naast de formulebalk)

[Reactie gewijzigd door g4wx3 op 22 juli 2024 20:45]

als je de samen te voegen cellen eerst opmaakt als tekst kan je er eender welk karakter in zetten zonder aanhalingstekens te moeten gebruiken
vb:
A1 "d 0 H"
B2 & &$
C1 \aA

Dan geef je als formule in (dus niet als opgemaakte tekst):
D1 =CONCAT(A1:C1)
en dan is het resultaat
"d 0 H"& &$\aA

copy/paste values in E1 en je kan het boeltje plakken in je terminal/shell/...
of gewoon:
winget install Microsoft.PowerShell
en daarna
winget update Microsoft.PowerShell

winget is zooooo goed :p
Hopelijk werken soon ook de AzureAD en overige modules goed binnen Powershell 7... Met de vorige versies werkt een Conditional Access Policy met Yubikey only niet.

Al krijg ik het idee dat deze modules er binnenkort uit gaan en worden vervangen door graph.
De AzureAD modules zijn inmiddels verouderd. Je kan beter overstappen op de Microsoft Graph modules
Yes het lastige is dat je nu nog beide nodig hebt. Met name richting de exchange backend. Graph kan nog geen ADP's zetten etc. Graph word gelukkig wel steeds completer! :)
Beetje vreemd screenshot bij dit artikel? Iemand die het verschil tussen Windows Powershell en PowerShell niet helemaal helder heeft?

[Reactie gewijzigd door TheGhost op 22 juli 2024 20:45]

Op dit item kan niet meer gereageerd worden.