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://connect.microsoft.com/PowerShell/Feedback , 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
}