Windows PowerShell er en integreret del af Windows-operativsystemet. Det er en kommandolinjeskal og et scriptsprog, der bruges til at automatisere tidskrævende gentagne opgaver, lave brugerdefinerede administrationsværktøjer og bygge, teste og implementere løsninger til forskellige andre problemer.
Standard PowerShell-versionen, der leveres færdigpakket i Windows-operativsystemet, er PowerShell 5.1 eller blot Windows PowerShell. Men med PowerShell 7 allerede frigivet og stabil, giver det så ikke mere mening for Windows OS at bruge den nyeste version af PowerShell? Hvilke fordele giver PowerShell 7 alligevel? Og er det opgraderingen værd? Lad os tale om det!
Hvad er PowerShell 7?
PowerShell 7 er den seneste LTS-udgivelsesversion af PowerShell. Denne version af PowerShell er udviklet gennem det nyere .NET Core framework, som tillader flere større opdateringer, som Windows superbrugere vil finde nyttige.
PowerShell 7 er registreret og licenseret under MIT-licensen. Det er nu open source software
, hvor folk frit kan se, ændre og distribuere deres egen kopi af softwarens kildekode. Udviklere kan også bidrage til de officielle PowerShell-udgivelser ved at deltage PowerShells officielle GitHub-side.Med sin community-support er denne version af PowerShell nu på tværs af platforme! Det betyder, at det nu kan installeres og bruges på Windows, macOS og Linux. Her er en liste over det understøttede x64-operativsystem:
- Windows 8.1, 10, 11
- Windows Server 2012, 2012 R2, 2016 og 2019
- macOS 10.13+
- Red Hat Enterprise Linux (RHEL) / CentOS 7
- Fedora 30+
- Debian 9
- Ubuntu LTS 16.04+
Alpine Linux 3.8+ PowerShell 7 understøttes også på forskellige ARM32 og ARM64 distros af Debian, Ubuntu og ARM64 Alpine Linux. For de interesserede er der også ikke-understøttede pakker til Arch og Kali Linux.
Hvad er de nye funktioner inkluderet i PowerShell 7?
Udover at være på tværs af platforme og open source, har PowerShell 7 mange andre nye funktioner, der yderligere forbedrer produktiviteten. Her er et par af de mere bemærkelsesværdige:
1. Forbedret bagudkompatibilitet
Med forskellen i framework vil Windows PowerShell og PowerShell versioner, der bruger .NET Core frameworket, have inkompatibiliteter. For at gøre det nemmere for folk at skifte, integrerer PowerShell 7 nu WindowsCompatibility-modulet. Dette modul er designet til at tillade Windows PowerShell-moduler og mange populære CMD-kommandoer at arbejde i PowerShell 7.
2. Pipeline-parallelisering med ForEach-Object
PowerShell 7 har nu en Parallel parameter. I Windows PowerShell vil hvert rørobjekt, der bruger ForEach-Object-cmdlet'en, blive udført én ad gangen. Men med den nye Parallel-parameter udføres alle rørobjekter nu samtidigt. Dette forbedrer ydeevnen drastisk, hvilket kan spare dig tid.
3. Ternære operatører
Windows PowerShell-betingelser udføres gennem if-else-sætninger. PowerShell 7 gør dette endnu enklere ved at introducere ternære operatorer, som grundlæggende er forenklede versioner af if-else-sætningerne ved at bruge "?" og ":" i syntaksen. Denne funktion giver mulighed for en hurtigere og renere scripting-oplevelse.
4. Rørledningskædeoperatører
Pipeline-operatører er en vigtig funktion i Windows PowerShell. Det giver dig mulighed for at lave komplekse udtryk ved at tage outputtet fra en cmdlet og bruge det på en anden cmdlet. Dette er dog begrænset, da Windows PowerShell ikke kan behandle betingede udtryk ved hjælp af almindelige pipeline-operatorer.
PowerShell 7 løser dette problem ved at introducere pipeline-kædeoperatører, som er "&&" og "||". Denne nye pipeline-operatør tillader PowerShell at udføre kommandoer med betingede udtryk.
Operatør && bruges kun til at udføre den højre pipeline-kommando, hvis kommandoen før operatøren er vellykket. Mens operatør || vil kun udføre den højre pipeline-kommando, hvis kommandoen før operatøren mislykkes.
Hvorfor er PowerShell 7 ikke standard på Windows?
PowerShell 7 er en open source-software på tværs af platforme, der giver funktioner, der drastisk kan forbedre ydeevnen og scriptinghastigheden. Så hvorfor gør Microsoft det ikke til standard PowerShell i Windows?
Den nuværende PowerShell, der leveres forudinstalleret med nyere Windows-systemer, er PowerShell 5.1. Dette er den sidste PowerShell-version, der bruger .NET frameworket. Selvom det er rigtigt, at dens efterfølgende versioner giver bedre funktioner, har Windows PowerShell stadig en fordel, som den nyere PowerShell ikke gør - fuldstændig bagudkompatibilitet.
Den første PowerShell blev udgivet den 14. november 2006. Det var da Windows Vista og XP stadig var det nyeste Windows OS. Ifølge forskning fra enlyft, USA alene har over 46.000 virksomheder, der stadig bruger Windows XP. Disse virksomheder kan simpelthen ikke opgradere til den nyeste PowerShell, da det ville forårsage et væld af bagudkompatibilitetsproblemer selv med PowerShell 7s integrerede WindowsCompatibility-modul.
For store virksomheder og forskellige kritiske infrastrukturer (pengeautomater, energileverandører, jernbaner, hospitaler osv.), forsinkelse service i uger til måneder blot for at genopbygge, teste og implementere scripts, der allerede fungerede med PowerShell 5.1, er simpelthen ikke en mulighed. Pas på alle de fejl, der kan komme ud i løbet af den faktiske driftstid.
Da PowerShell 5.1 er den seneste PowerShell bygget på. NET framework, er det garanteret at fungere med alle tidligere versioner af PowerShell, selv den, der blev udgivet i 2006.
Skal du opgradere til PowerShell 7?
PowerShell 7 leverer mange nyttige opdateringer, der gør kommandolinjegrænseflader og scripting nemmere, hurtigere og mere praktisk med dens cross-platform support. I modsætning hertil giver Windows PowerShell fuldstændig bagudkompatibilitet til al ældre PowerShell før PowerShell 6. Så skal du fortsætte med at bruge Windows PowerShell eller opgradere til den nyere PowerShell 7?
Det gode ved PowerShell 7 er, at det er designet til at eksistere sammen med Windows PowerShell 5.1. Bortset fra det integrerede WindowsCompatibility-modul, PowerShell 7 giver også en separat installationssti, eksekverbart navn, PSModulePath og hændelseslogfiler for at sikre, at det ikke forstyrrer det allerede installerede Windows PowerShell.
Så for det store flertal af mennesker, der ønsker at prøve de nye funktioner i PowerShell 7, kan de helt sikkert gøre det, mens de beholder deres standard Windows PowerShell. Hvis du er nysgerrig efter, om den nyere PowerShell er noget for dig, så bør du helt sikkert prøve den nyere PowerShell.
Selvom PowerShell 7 giver god bagudkompatibilitet, vil der altid være nogle uoverensstemmelser på grund af deres forskelle i rammerne. Hvis du arbejder i en virksomhed eller organisation, der i høj grad er afhængig af brugerdefinerede værktøjer og programmer lavet fra Windows PowerShell, så er det måske ikke en god idé at migrere virksomhedens system til PowerShell 7.
PowerShell 7 leverede masser af opdateringer, men droppede også en del ældre moduler og cmdlets. Hvis du er en person, der allerede er tilfreds med standard PowerShell, så er der virkelig ingen grund til at migrere, især hvis du ikke har tid til at læse dokumentationen.
PowerShell 7 gør scripting hurtigere
PowerShell 7 er en af de nyeste stabile versioner af PowerShell med Long Term Support (LTS). Det giver en hurtigere og nemmere måde at bruge PowerShell på, selvom du bruger andre operativsystemer som macOS eller Linux. Selvom det kan tage lidt tid at læse dens dokumentation, vil du i sidste ende spare mere tid, når du bliver dygtig til de nye opdateringer.