Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Windows 10 - prostředí PowerShell

Ve Windows 10 Pro a Enterprise naleznete prostředí Windows PowerShell, které je určeno zejména správcům systému a nahrazuje a vylepšuje funkci příkazového řádku (programu Cmd.exe). Můžete provádět stejné akce jako v příkazovém řádku, a díky výkonnému skriptování můžete lépe automatizovat rutinní operace. Jestliže jste si zvykli zjednodušovat správu pomocí dávkových programů nebo jazyků VBScript či JScript, můžete své znalosti skriptování uplatnit i nadále, ale navíc je rozšířit pomocí dalších možností, které poskytuje objektová orientace prostředí PowerShell a základní architektura .NET Framework.

Výhody prostředí Windows PowerShell:

  • Integrace s rozhraním .NET Framework – podobně jako tradičnější vývojářské jazyky (C#, Visual Basic) mají příkazy a skripty prostředí PowerShell přístup k bohaté škále prostředků platformy .NET Framework.
  • Objektová orientace – všechny příkazy prostředí PowerShell, které generují výstup, vracejí místo neformátovaného textu objekty rozhraní .NET Framework. Výstup jednoho příkazu může sloužit jako vstup druhého (příkazy jsou „zřetězeny“), není nutné zpracovávat text.
  • Konzistentní příkazový model – všechny příkazy rozhraní PowerShell používají syntaxi tvořenou kombinací slovesa a podstatného jména, přičemž obě složky jsou odděleny pomlčkou. Všechny rutiny, které načítají informace ze systému, začínají slovem Get. Rutiny pro zápis informací zase vesměs začínají slovem Set. Díky tomuto a jiným obecně platným pravidlům je jazyk snadno srozumitelný a umožňuje rychlé osvojení. Každá rutina má své téma nápovědy, které lze načíst pomocí příkazu get-help název_rutiny. Parametr –Whatif umožňuje testovat účinek rutiny před jejím spuštěním.
  • Univerzální možnosti skriptování – skripty prostředí PowerShell jsou textové soubory s příponou PS1, které obsahují příkazy tohoto prostředí. Do skriptů lze zahrnout všechny příkazy, které je možné používat interaktivně. Na druhou stranu lze rovněž interaktivně (tj. mimo kontext skriptů) používat struktury skriptů typu cyklů, větvení a proměnných.
  • Zaměření na správce – prostředí PowerShell zahrnuje funkce, které jsou zvláště zajímavé pro správce systému, jako je možnost pracovat se vzdálenými počítači, přistupovat k systémovým prostředkům typu souborů, složek, klíčů registru, událostí a protokolů a spouštět a zastavovat služby.
  • Rozšiřitelnost – vývojáři mohou jazyk prostředí PowerShell rozšířit importem modulů, což jsou balíčky příkazů a dalších položek prostředí.

Spuštění prostředí PowerShell

Chcete-li spustit prostředí Windows PowerShell, zadejte do vyhledávacího pole výraz power a v horní části seznamu výsledků by se měla objevit aplikace Windows PowerShell. Nedaleko najdete také 64bitovou a 32bitovou verzi Integrovaného skriptovacího prostředí (ISE) v prostředí Windows PowerShell. Integrované skriptovací prostředí (ISE – Integrated Scripting Environment) je grafické prostředí vybavené více kartami, které je praktické zejména při vývoji a ladění skriptů.

Pokročilé postupy pro Windows
Pokročilé postupy pro Windows

Jak je zřejmé z obrázku, výchozí vzhled prostředí PowerShell se příliš neliší od prostředí klasického příkazového řádku.

Interakce s prostředím PowerShell

Prostředí PowerShell usnadňuje přechod z příkazového řádku pomocí tzv. aliasů. Mapuje příkazy příkazového řádku na své vlastní rutiny pomocí aliasů. Například příkaz dir tedy funguje jako alias rutiny prostředí PowerShell Get-Childitem a příkaz cd slouží jako alias rutiny Set-Location tohoto prostředí. Lze použít i symboly přesměrování, jako je symbol > k odeslání výstupu do souboru a dvojice symbolů >> k připojení výstupu do souboru. Dlouhý výstup je možné zřetězit příkazem More. V prostředí PowerShell můžete vytvořit i své vlastní aliasy, které vám usnadní zadávání často používaných příkazů. Stejně jako příkazový řádek také prostředí PowerShell umožňuje spouštět spustitelné soubory. Příkazem regedit například spustíte nástroj Editor registru a zadáte-li příkaz taskschd, spustí se nástroj Plánovač úloh.

Syntaxe prostředí PowerShell

Syntaxe prostředí PowerShell tvoří sada rutin, jejichž názvy se skládají ze sloves následovaných pomlčkami a podstatnými jmény – jako příklad lze uvést rutinu Start-Service. Za názvem rutiny může následovat jeden nebo více parametrů. Před každým parametrem se zadává mezera a parametry se skládají z pomlčky, po které bezprostředně následuje název parametru a za mezerou hodnota parametru. Například Get-Process -Name iexplore, winword, excel generuje informace o aplikacích Word, Excel a Internet Explorer. Mnoho rutin pracuje s pozičními parametry. K pozičním parametrům patří i parametr –Name rutiny Get-Process. Prostředí PowerShell očekává, že tento parametr bude uveden jako první. Můžete tedy vynechat název parametru –Name a jednoduše uvést názvy procesů, které vás zajímají Get-Process iexplore, winword, excel

Operátor zřetězení ( | ) umožňuje nastavit výstup jedné rutiny jako vstup jiné. Například když rutinu Get-Service zřetězíte s rutinou Format-List, tedy zadáte příkaz Get-Service | Format-List prostředí PowerShell již není omezeno šířkou obrazovky a dokáže zobrazit více vlastností objektu.

Pokročilé postupy pro Windows

Pro vytvoření vícesloupcového seznamu použijte rutinu Format-Wide, pro tabulkový seznam Format-Table. Chcete-li vybrat specifické vlastnosti, které budou generovány, použijte parametr -Property . Například Get-Service | Format-Table -Property name, dependentservices, servicesdependedon generuje tabulku, která obsahuje tři uvedené výčtové vlastnosti.

Pro generování interaktivní grafické tabulky použijte rutinu Out-Gridview. Když zřetězíte výstup s rutinou Out-Gridview, objeví se grafická tabulka, kterou můžete filtrovat, třídit a snadno kopírovat do jiných programů s podporou tabulkových dat, jako je například Excel. Na obrázku vidíte výstup příkazu Get-Process | Select-Object * | Out-Gridview

Pokročilé postupy pro Windows

V tomto příkladu je rutina GetProcess nejdříve zřetězena s příkazem Select-Object *, protože rutina Out-Gridview na rozdíl od rutiny Format-Table neposkytuje parametr –Property. Příkaz Select-Object * předá všechny vlastnosti objektu vráceného rutinou Get-Process rutině Out-Gridview v další fázi zřetězení. Zobrazením rutiny Out-Gridview lze manipulovat podobnými postupy, jaké se používají v mnoha jiných programech windows (vyzkoušejte si vše kliknutím na názvy sloupců, filtr umožní rychlou orientaci, kritéria zobrazení můžete měnit podle potřeby). Výstup můžete filtrovat i pomocí rutiny Where-Object. Například Get-Service | Where-Object {$_.Status -eq "Stopped"} zobrazí služby se stavem Stopped. Rutina Sort-Object dovoluje mnoha užitečnými způsoby setřídit výstup rutiny podle jedné nebo více vlastností výsledného objektu. Pokud vynecháte parametr –Property, rutina Sort-Object bude třídit podle výchozí vlastnosti. Například Get-Childitem | Sort-Object setřídí obraz aktuálního adresáře podle vlastnosti Name, která je v tomto případě výchozí. Jestliže potřebujete třídit podle více vlastností, doplňte za parametr –Property seznam oddělený čárkami. Když zřetězíte rutinu Sort-Object s rutinou Select-Object, můžete dosáhnout například vrácení největších či nejmenších n položek z výsledného objektu. Například Get-Process | Sort-Object -Property WS | Select-Object -Last 10 vrátí procesy s 10 největšími hodnotami vlastnosti WS (working set). Když místo řetězce –Last 10 uvedete řetězec –First 10, dostanete položky s nejmenšími hodnotami.

Pokud chcete přesměrovat výstup na výchozí tiskárnu, zřetězte jej s rutinou Out-Printer. Jestliže chcete použít jinou než výchozí tiskárnu, zadejte její název uzavřený do uvozovek za název rutiny Out-Printer. Například Get-Content C:\Users\Marti­na\Documents\Co­Press\Pozn.txt | Out-Printer "Microsoft Print To PDF" odešle obsah souboru C:\Users\Marti­na\Documents\Co­Press\Pozn.txt na zařízení s názvem Microsoft Print To PDF.

Používání a vytváření aliasů, usnadnění zápisu příkazů, nápověda

Alias představuje alternativní název rutiny. Kromě aliasů programu Cmd.exe, obsahuje i mnoho dalších aliasů, které pouze pomáhají při psaní. Třeba výraz gsv představuje alias názvu rutiny Get-Service. Můžete také vytvářet své vlastní aliasy. Chcete-li zjistit, které aliasy jsou aktuálně dostupné (včetně těch, které jste sami vytvořili), zadejte příkaz get-alias. Pokud vás zajímá, zda je k dispozici alias pro určitou rutinu, zřetězte rutinu Get-Alias s rutinou Where-Object. Například Get-Alias | Where-Object { $_.definition -eq "Set-Variable" } vrátí dva aliasy set a sv. Chcete-li vytvořit nový alias, zadejte příkaz set-alias název hodnota, kde název označuje alias a hodnota představuje rutinu, funkci, spustitelný program nebo skript. Například set-alias note notepad.exe vytvoří alias note, který otevře poznámkový blok. Aliasy, které vytvoříte, jsou platné pouze pro aktuální relaci. Chcete-li je zpřístupnit trvale, zahrňte je do svého profilu.

Pro jednoduché operace se systémem souborů (FileSystem) postačují známé příkazy prostředí Cmd.exe, které se používají snáze než příslušné rutiny prostředí PowerShell. Díky integrovaným aliasům nemusíte časem prověřené postupy měnit. PowerShell podporuje známé symboly jedné tečky (.) a dvou teček (..) pro aktuální a nadřazený adresář. Obsahuje také integrovanou proměnnou $Home, která reprezentuje domovský adresář (odpovídá proměnné prostředí HomePath).

Lze zkracovat i názvy parametrů, tak například příkazy Get-Process –name iexplore a Get-Process –n iexplore jsou ekvivalentní. V příkazech lze použít zástupné znaky * a ? a mnoho různých „regulárních výrazů“, které odpovídají znakovým řetězcům. Seznamte se s nimi pomocí příkazu get-help about_regular_ex­pressions.

Uchovává se historie nedávných příkazů, která usnadňuje opakované použití dříve zadaného příkazu. Obsah historie zobrazíte příkazem get-history. Každou položku v historii identifikuje číslo ID. Položku lze na příkazový řádek vyvolat příkazem invoke-history ID.

Prostředí PowerShell obsahuje sadu zprostředkovatelů, které poskytují přístup k různým typům datových úložišť. Zprostředkovatelé jsou programy platformy .NET Framework a jejich data jsou vystavena ve formě jednotek, které připomínají známé jednotky se systémem souborů. Takovými zprostředkovateli je výše zmíněný Alias a FileSystem. Další informace o zprostředkovatelích získáte zadáním příkazu get-help about_providers. Zajímavým zprostředkovatelem je Registry, poskytuje jednotky pro dva podregistry HKLM a HKCU. Pomocí standardní notace cest lze přejít na konkrétní podklíče. Informace o všech podklíčích určitého klíče lze zobrazit rutinou Get-Childitem. Například Get-Childitem -Path hkcu:\software\mi­crosoft vrátí informace o všech podklíčích klíče HKCU:\Software\Mi­crosoft. Informace o práci s registry získáte zadáním příkazu get-help registry.

Pro rutiny Set-Location, Get-Childitem, Move-Item, Copy-Item, Get-Content, New-Item, Remove-Item či Get-Acl jsou k dispozici i užitečné volitelné parametry. Zadáním příkazu get-help název_rutiny získáte informace o používání těchto parametrů. Jsou to například -Credential, -Delimiter, -Encoding a další.

Prostředí PowerShell poskytuje mnoho funkcí, díky nimž se při práci s prostředím můžete učit nové postupy. Informace nápovědy o libovolné rutině zobrazíte zadáním příkazu get-help název_rutiny.

Pokud potřebujete zjistit, která rutina se nejlépe hodí pro daný problém, můžete použít rutinu Get-Command. Doplníte-li jej * (Get-Command *) zobrazí se dlouhý seznam, který obsahuje všechny soubory ve všech složkách, které jsou uvedeny v aktuální proměnné prostředí Path. Přidáním parametru –Noun upřesníte oblast zadání. Například příkaz get-command –noun eventlog. Dostanete názvy a definice rutin Clear-Eventlog, Get-Eventlog, Limit-Eventlog, New-Eventlog, Remove-Eventlog, Show-Eventlog a Write-Eventlog.

Skriptování v prostředí PowerShell

Skript prostředí PowerShell je textový soubor s příponou PS1. Skript můžete vytvořit v libovolném editoru neformátovaného textu [zcela postačí Notepad (Poznámkový blok)], nebo můžete použít Integrované skriptovací prostředí (ISE).

Pokud vás více zajímá prostředí PowerShell a chtěli byste se ho naučit do hloubky, máme na této síti sérii lekcí o PowerShellu.

Více se dozvíte na https://msdn.microsoft.com/…s/powershell

Napsal: Ing Ivan Šereda

Literatura

  • Windows 10 Inside Out, Ed Bott, Carl Siechert, Craig Stinson

    PUBLISHED BY Microsoft Press A division of Microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399


 

Všechny články v sekci
Pokročilé postupy pro Windows
Článek pro vás napsal itnavi
Avatar
Uživatelské hodnocení:
7 hlasů
Autor se věnuje tvorbě a správě webových stránek a programování v C#
Aktivity