Seriál Windows PowerShell: PowerShell v5 (část 56.)

Před pár dny jsem se zúčastnil konference FRESH IT a měl jsem možnost krátce prezentovat informace o novinkách v PowerShellu v5. Vzhledem k tomu, že téma se setkalo s pochopením, rozhodl jsem se udělat v tomto článku krátký souhrn prezentovaných informací. Zároveň bych tyto informace rád v budoucnu rozšířil o podrobnější články tak, jak se bude blížit finální vydání nové verze.

PowerShell v5 lze nainstalovat jako součást balíčku nazvaného Windows Management Framework 5.0. Microsoft vydává update tohoto balíčku zhruba každé dva měsíce, zatím poslední verze je z února letošního roku. Můžete ji stáhnout na této adrese. Aktuálně můžete tento update nainstalovat na Windows 8.1 a servery 2012 a 2012 R2. PowerShell 5.0 bude jako součást nainstalován na plánovaných Windows 10.

Pojďme si v krátkosti ukázat nejzajímavější novinky.

Transcript

Pokud používáte cmdlet Start-Transcript vězte, že od nové verze funguje i v ISE (případně jiných PowerShell prostředích). Přibyl nový parametr IncludeInvocationHeader,který do výsledného souboru přidává časovou značku spouštění jednotlivých příkazů.

image

Symbolic links

Konečně jsme se dočkali cmdletů pro práci se symlinks. Vytvoření probíhá standardně pomocí cmdletu New-Item. Další z *-Item cmdletů obsahují parametry, které s linky pracují s typy SymbolicLink, HardLink, Junction. Položky můžete vytvářet, mazat, listovat.

Práce s archivy

PowerShell nově obsahuje cmdlety pro práci s archivy (ZIP). Dva cmdlety: Compress-Archive Expand-Archive dokáží sbalit/rozbalit soubory tak, jak jste při práci s archivy zvyklí. Pro vytvoření archivu můžete pomocí parametru CompressionLevelurčovat metodu a efektivitu algoritmu.

Zpracování nestrukturovaného textu

Již v prosincovém Flashi jsem psal o cmdletu ConvertFrom-String. Tento cmdlet umožňuje zpracovat složitěji formátovaný text tak, abyste z něj byli schopni získat objektovou reprezentaci. Podrobnější článek si můžete přečíst na TechNet blogu.

OneGet a PowerShellGet

Tyto dva pojmy uslyšíte v budoucnosti velmi často. Dle mého názoru se jedná o asi nejzajímavější novinku v PowerShellu v5. Ve starších verzích to byl PS Remoting (v2), workflows (v3) a DSC (v4). Pomocí těchto dvou nástrojů budete schopni do PowerShellu instalovat SW (balíčky) a PowerShell moduly z dané repository (vlastní či externí). Představte si OneGet jako nástroj pro instalaci veřejně dostupných programů (např. 7-Zip nebo nástroje Sysinternals) a PowerShellGet jako nástroj pro instalaci modulů. Shrnuto na následujícím obrázku.

image

Obrázek čtěte odspodu. Existují poskytovatelé balíčků. Tyto balíčky mohou být zpracovány pomocí nástroje OneGet. Nad OneGet sedí PowerShellGet, který funguje na stejném principu, ale pouze pro PowerShell moduly. Těmito nástroji můžete tedy po instalaci počítače nainstalovat potřebný software a nemusíte tuto instalaci řešit žádnými dalšími externími nástroji. Pokud zkusíte např.

Find-Package -Name zoomit | Install-Package –Verbose

Z určeného zdroje se najde balíček ZoomIt a jeho poslední verze se nainstaluje na váš počítač. Pokud znáte v Perlu ideu CPAN, tento princip bude nyní fungovat i pro PowerShell.

K těmto dvěma nástrojům se určitě dostanu v některém z dalších článků, protože si svou pozornost rozhodně zaslouží.

Mimochodem, dle posledních informací to vypadá, že nástroj OneGet bude brzy přejmenován na PackageManagement. Pokud by vás tedy toto téma zajímalo, zkuste vyhledávat obe termíny.

PSScriptAnalyzer

Toto je velmi zajímavý modul, který slouží ke statické kontrole vašeho kódu (skriptů a modulů). Microsoft připravil určitá pravidla a pomocí cmdletu Invoke-ScriptAnalyzermůžete oproti těmto pravidlům nechat zkontrolovat váš skript. Například jedna z pouček říká, že ve skriptu byste neměli používat aliasy, skripty budou lépe čitelné. Můžete tedy spustit pravidlo kontroly aliasů a na výstupu dostanete seznam, kde je vidět, kde jste se provinili proti tomuto pravidlu, např.

Invoke-ScriptAnalyzer -Path 'C:\FRESH IT\BlbySkript.ps1' -IncludeRule AvoidUsingCmdletAliases

Zobrazí seznam, kde vidíte své prohřešky a můžete je odstranit. Pravidel existuje několik a máte možnost si vytvářet i svá vlastní.

Script Debug

Z této oblasti vypíchnu asi nejzajímavější novinku – možnost provádět debug skriptu v jiné PowerShell session, než je aktuální. Celá „operace“ probíhá v několika krocích. Nejprve zjistíte ID procesu PowerShellu, kde chcete debug provést a připojíte se do něj.

Enter-PSHostProcess -Id $id

Zobrazíte si všechny Runspaces tohoto procesu.

Get-Runspace

Poté vyberete, kam se chcete připojit.

Debug-Runspace -Id 1

V tomto okamžiku jste připojeni do cizího procesu a jste schpni provést debug. Toto je rozhodně další z témata, které bych rád rozebral v samostatném článku.

Pro dnešek je to vše, ale věřte, že v PowerShellu v5 je opravdu několik skvělých novinek a je na co se těšit. Jak jsem již zmiňoval, k některým se vrátím později a s blížícími se Windows 10 bude těchto novinek publikováno stále více.