Powershell 7 tulekul

Eile sai valmis Powershell 7 Preview 4, sellega seoses võiks sellest natke pikemalt rääkida. Seda enam et selle versiooniga on plaanis mitmed muutused.

Üks suuremaid (ja oodatumaid) muutusi on see, et selle versiooniga on plaanis parandada Powershelli kokkusobivust Windowsiga. Tundub natuke imelik sedasi rääkida, ent Powershell Core (6.x) peamine sihtgrupp oli pigem teised toetatud platvormid. Ja seetõttu ei töödanud paljud Windows Powershellis töötavad moodulid Powershell Core keskkonnas.

Powershell 7 kasutab .NET Core 3.0 versiooni, mis toob tagasi paljud funktsioonid, mis .NET Core 2.0-s olid puudu. See paneb paljud Powershell Core keskkonnas mitte töötanud moodulid loodetavasti jälle tööle. Lisaks võib veel mainida et Server 2019/Windows 10 v1809 väljatulekuga käidi üle OS-iga kaasatulevad moodulid ja paljud neist pandi Powershell Core sees tööle.

Teine suur asi on see, et uus versiooni on planeeritud asendama Windows Powershelli. Seni on Powershell Core olnud eraldi paralleelne versioon, mis ei asenda, vaid täiendab Windows Powershelli. V7 on mõeldud v5.1 asendama, nii et seni Windows Powershelli platvormile jäänud kasutajad saavad ka nautida vahepeal toimunud uuendusi ja parandusi. See on muuhulgas ka üks põhjusi, miks uus versioon on v7, mitte v6.3.

Kevadel, kui v7 Preview 1 välja kuulutati, siis teatati ka seda, et see saab olema esimene Long Term Servicing versioon pärast v6 väljatulekut. Nimelt on v7 toetatud niikaua, kuni on toetatud .NET Core 3.1. Seniste Powershell Core versioonide tugi on järginud Modern Lifecycle Support poliitikat. Selle järgi tuleb v6.2.2 uuendada uueks v6.2.3-ks 30 päeva jooksul pärast avaldamist, et tugi kehtiks. Sama loogika järgi on toetatud ka v6.1.6, kuigi ametlikult vaid septembri lõpuni (6 kuud v6.2 väljalaskest).

Funktsionaalsuse poole pealt on tegemist pigem evolutsiooni, kui revolutsiooniga. On hulk asju, mis kunagi välja lubati aga mis pole veel valmis saanud. Siis on mõned uued eksperimentaalsed funktsioonid, nagu näiteks PSForEachObjectParallel või PSTernaryOperator. Ülejäänud nipet-näpet on mõistlikum ise muudatuste logist järele vaadata.

Uue versiooni valmissaamise koha pealt on lubatud, et v7 peaks välja tulema järgmise aasta Jaanuaris.

Pisiasjana tasub veel mainida, et plaan panna v7 Windowsiga kaasa tulema tundub realiseeruvat sedapidi, et Powershell kolib Microsoft Store keskkonda.

Windows Server 2019

Hiljuti kuulutas Microsoft, et selle aasta teises pooles tuleb välja Windows Server 2019.  Juba praegu saavad Windows Insider programmiga liitunud alla laadida Server 2019 eelvaate versioone.

Windows Server 2019 on järgmine Long-Term Servicing Channel väljalase.  See tähendab et see sobib muuhulgas Exchange, Sharepointi või SQL Serveri jooksutamiseks ning kaugtöölaua serveriks.

Muuhulgas on lubatud, et Server Core paigaldus peaks kuni 3 korda väiksemaks minema.  Siis on hea hulgi konteinereid luua.

Lubatud on veel mitmeid asju, nagu näiteks Windows Subsystem on Linux ja Windows Admin Center (endine Project Honolulu), samuti nagu juba Windows 10 peal olemasolevad Windows Defender Advanced Threat Protection ning Windows Defender ATP Exploit Guard.

Võta endale aega, tõmba eelvaated alla, paigalda ning proovi.  Ja kui leiad midagi parandada, siis saada kindlasti tagasisidet.

Powershell 5 Preview April 2015

Järjekordne versioon Windows Management Framework 5.0 eelvaatest.  On möödunud aasta esimesest eelvaatest ja seekord saab seda paigaldada ka Windows 7/Server 2008 R2 ja Server 2012 peale.

Uusi asju on juurde tulnud päris palju.  Muudatusi on nii väikeseid kui suuri.  Peamised suured asjad on ikka Desired State Configuration ja moodul PowershellGet.  Aga on ka pisikesi asju, nagu näiteks Get-Clipboard, Set-Clipboard ja New-TemporaryFile.

Nagu eelvaatega ikka, kui leiad midagi, mida tahad muuta, siis kirjuta aadressil https://windowsserver.uservoice.com/forums/301869-powershell, või siis vähemalt hääleta juba kirjutatud asjade seas neid, mis ka Sinu arust vajalikud on.

Powershell 5.0 eelvaade

Veebruaris tuli välja järjekordne versioon Windows Management Framework 5.0-st.  Võrreldes varasemate versioonidega on nüüd näiteks tööle hakanud kõik erinevad linkide versioonid:

New-Item -ItemType File -Path asi.txt
New-Item -ItemType Directory -Path kaust

#Requires -Version 5
New-Item -ItemType HardLink -Name sama.txt -Value .\asi.txt
New-Item -ItemType Junction -Path .\kaustalink -Value .\kaust

#Requires -RunAsAdministrator
New-Item -ItemType SymbolicLink -Path .\uus.txt -Value .\asi.txt
New-Item -ItemType SymbolicLink -Path .\uuskaust -Value .\kaust

Veel üks uus ja põnev omadus on oma skripti lähtekoodi analüüs, kasutades etteantud või ise lisatud reegleid.

Sama versioon (või versiooninumbri järgi isegi värskem versioon) on ka Windows 10 sees.

Jälle Powershell 5 Preview

Juulikuus tuli välja järjekordne  uuendus Windows Management Framework 5 eelvaatele.  Erinevalt varasematest pole seda aga kuskil mainitud.  Tänud Thomas Lee-le, kes jagas uue eelvaate linke ka meiega:

Uued ja kasulikud oskused selles versioonis on oskus saada hakkama .zip arhiivide loomise ja lahtipakkimisega ning failisüsteemis linkide loomise/näitamisega. Lisaks veel ka see, et nüüd on võimalik logida kõik Powershelli poolt täidetavad käsud (ka need, mis oma sisu varjata püüavad).

#Requires -Version 5

Compress-Archive -Path .\asi.txt -DestinationPath .\arhiiv.zip
Compress-Archive -Path .\tööleht.txt -DestinationPath .\arhiiv.zip -Update

Expand-Archive .\arhiiv.zip -DestinationPath .\kaust

#Requires -RunAsAdministrator
New-Item -ItemType SymbolicLink -Path .\uus.txt  -Value .\asi.txt
New-Item -ItemType SymbolicLink -Path .\uuskaust -Value .\kaust
  #need veel ei tööta
New-Item -ItemType HardLink -Name sama.txt -Value .\asi.txt
New-Item -ItemType Junction -Path .\kaustalink -Value .\kaust

Powershell 5 Preview uuenes

Mainisin hiljuti Windows Management Framework 5.0 eelvaadet.  Nüüd on sellest avaldatud järgmine versioon: (Mai 2014) eelvaade.  Selle paigaldamiseks tuleb eelmine eelvaate versioon alt ära võtta (kui see ees on).

Peamine põhjus, miks tahta just maikuu eelvaadet, on lisandunud moodul PowerShellGet, mis võimaldab otsida, paigaldada ja uuendada mooduleid vastu keskset hoidlat.  Ehk siis saab teha midagi järgnevale sarnast:

Find-Module *cim*

Install-Module CimInventory -Scope CurrentUser

Update-Module

Nagu arvata võib, siis esialgu on moodulite hoidla tühjavõitu, aga käsk Publish-Module peaks selle vea kiiresti ära parandama.

PowerShell 4.0 eelvaade

Koos Windows 8.1-ga on valmimas ka järgmine PowerShelli versioon.  Juba praegu on võimalik alla tõmmata Windows Management Framework 4.0 eelvaade, mis seda sisaldab.  Paigaldada saab seda Windows 7 SP1 ja Server 2008 R2 või Server 2012 peale.  Windows 8 jaoks tuleb ära oodata 8.1 valmimine.

Paigaldus eeldab, et masinas on olemas .NET Framework 4.5, mis on Server 2012 peal juba olemas.  Pärast paigaldust on Powershell 3.0 mootor asendatud 4.0 mootoriga, mille kõrval eksisteerib edasi 2.0 mootor.

Suuri muudatusi versioonivahetusega ei ole.  Väiksemaid asju võib dokumentatsioonist ise järgi vaadata, suure asjana märgiks uue omaduse nimega Desired State Configuration.  Ära märkida tasub veel admin-õiguste kontroll skriptis (käsureal see mehhanism ei tööta):

#Requires -Version 4
#Requires –RunAsAdministrator
Write-Host "see tekst ilmub ainult siis, kui skript jookseb admin-õigustes"

Seega ei ole enam tingimata vaja varasemates versioonides kasutatud meetodit:

Function Test-IsAdmin {
  $adminRole = [Security.Principal.WindowsBuiltinRole]::Administrator
  $currentUser = [Security.Principal.WindowsIdentity]::GetCurrent()
  ( [Security.Principal.WindowsPrincipal] $currentUser).IsInRole($adminRole)
}

if (-not Test-IsAdmin) {
  throw "see kood ei jookse admin-õigustes"
} else {
  # teeme midagi mis vajab admin-õigusi
}