IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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 - prostredie PowerShell

Vo Windows 10 Pro a Enterprise nájdete prostredie Windows PowerShell, ktoré je určené najmä správcom systému a nahradzuje a vylepšuje funkciu príkazového riadku (programu Cmd.exe). Môžete vykonávať rovnaké akcie ako v príkazovom riadku, a vďaka výkonnému skriptovanie môžete lepšie automatizovať rutinné operácie. Ak ste si zvykli zjednodušovať správu pomocou dávkových programov alebo jazykov VBScript alebo JScript, môžete svoje vedomosti skriptovanie uplatniť aj naďalej, ale navyše je rozšíriť pomocou ďalších možností, ktoré poskytuje objektová orientácia prostredie PowerShell a základné architektúra .NET Framework.

Výhody Windows PowerShell:

  • Integrácia s rozhraním .NET Framework - podobne ako tradičnejšie vývojárske jazyky (C #, Visual Basic) majú príkazy a skripty prostredia PowerShell prístup k bohatej škále prostriedkov platformy .NET Framework.
  • Objektová orientácia - všetky príkazy prostredie PowerShell, ktoré generujú výstup, vracajú miesto neformátovaného texte objekty Framework. Výstup jedného príkazu môže slúžiť ako vstup druhého (príkazy sú "zlúčia"), nie je nutné spracovávať text.
  • Konzistentné príkazový model - všetky príkazy rozhranie PowerShell používajú syntax tvorenú kombináciou slovesá a podstatného mena, pričom obe zložky sú oddelené pomlčkou. Všetky rutiny, ktoré načítavajú informácie zo systému, začínajú slovom Get. Rutiny pre zápis informácií zase napospol začínajú slovom Set. Vďaka tomuto a iným všeobecne platným pravidlám je jazyk ľahko zrozumiteľný a umožňuje rýchle osvojenie. Každá rutina má svoju tému pomocníka, ktoré možno načítať pomocou príkazu get-help název_rutiny. Parameter -Whatif umožňuje testovať účinok rutiny pred jej spustením.
  • Univerzálny možnosti skriptovanie - skripty prostredia PowerShell sú textové súbory s príponou PS1, ktoré obsahujú príkazy tohto prostredia. Do skriptov možno zahrnúť všetky príkazy, ktoré je možné používať interaktívne. Na druhú stranu je možné taktiež interaktívne (tj. Mimo kontextu skriptov) používať štruktúry skriptov typu cyklov, vetvenia a premenných.
  • Zameranie na správcu - prostredie PowerShell zahŕňa funkcie, ktoré sú obzvlášť zaujímavé pre správcov systému, ako je možnosť pracovať so vzdialenými počítačmi, pristupovať k systémovým prostriedkom typu súborov, zložiek, kľúčov Registry, udalostí a protokolov a spúšťať a zastavovať služby.
  • Rozšíriteľnosť - vývojári môžu jazyk prostredia PowerShell rozšíriť importom modulov, čo sú balíčky príkazov a ďalších položiek prostredie.

Spustenie prostredie PowerShell

Ak chcete spustiť prostredie Windows PowerShell, zadajte do vyhľadávacieho poľa výraz power a v hornej časti zoznamu výsledkov by sa mala objaviť aplikácie Windows PowerShell. Neďaleko nájdete tiež 64-bitovú a 32-bitovú verziu Integrovaného skriptovacieho prostredia (ISE) v prostredí Windows PowerShell. Integrované skriptovací prostredie (ISE - Integrated Scripting Environment) je grafické prostredie vybavené viacerými kartami, ktoré je praktické najmä pri vývoji a ladenie skriptov.

Pokročilé postupy pre Windows
Pokročilé postupy pre Windows
Ako je zrejmé z obrázku, predvolený vzhľad prostredia PowerShell sa príliš nelíši od prostredia klasického príkazového riadku.

Interakcia s prostredím PowerShell

Prostredie PowerShell uľahčuje prechod z príkazového riadka pomocou tzv. Aliasov. Mapuje príkazy príkazového riadka na svoje vlastné rutiny pomocou aliasov. Napríklad príkaz dir teda funguje ako alias rutiny prostredia PowerShell Get-Childitem a príkaz cd slúži ako alias rutiny Set-Location tohto prostredia. Možno použiť aj symboly presmerovanie, ako je symbol> na odoslanie výstupu do súboru a dvojica symbolov >> na pripojenie výstupu do súboru. Dlhý výstup je možné zreťaziť príkazom More. V prostredí PowerShell môžete vytvoriť aj svoje vlastné aliasy, ktoré vám uľahčia zadávanie často používaných príkazov. Rovnako ako príkazový riadok tiež prostredie PowerShell umožňuje spúšťať spustiteľné súbory. Príkazom regedit napríklad spustíte nástroj Editor databázy Registry a zadáte Ak príkaz taskschd, spustí sa nástroj Plánovač úloh.

Syntaxe prostredie PowerShell

Syntax prostredia PowerShell tvorí sada rutín, ktorých názvy sa skladajú zo slovies nasledovaných spojovníkom a podstatnými menami - ako príklad možno uviesť rutinu Start-Service. Za názvom rutiny môže nasledovať jeden alebo viac parametrov. Pred každým parametrom sa zadáva medzera a parametre sa skladajú z pomlčky, po ktorej bezprostredne nasleduje názov parametra a za medzerou hodnota parametra. Napríklad Get-Process -name iexplore, Winword, excel generuje informácie o aplikáciách Word, Excel a Internet Explorer. Mnoho rutín pracuje s pozičnými parametrami. K pozičným parametrom patrí aj parameter -name rutiny Get-Process. Prostredie PowerShell očakáva, že tento parameter bude uvedený ako prvý. Môžete teda vynechať názov parametra -name a jednoducho uviesť názvy procesov, ktoré vás zaujímajú Get-Process iexplore, Winword, excel

Operátor zreťazenie (|) umožňuje nastaviť výstup jednej rutiny ako vstup iné. Napríklad keď rutinu Get-Service zřetězíte s rutinou Format-List, teda zadáte príkaz Get-Service | Format-List prostredia PowerShell už nie je obmedzené šírkou obrazovky a dokáže zobraziť viac vlastností objektu.

Pokročilé postupy pre Windows
Pre vytvorenie vícesloupcového zoznamu použite rutinu Format-Wide, pre tabuľkový zoznam Format-Table. Ak chcete vybrať špecifické vlastnosti, ktoré budú generované, použite parameter -Property. Napríklad Get-Service | Format-Table -Property name, dependentservices, servicesdependedon generuje tabuľku, ktorá obsahuje tri uvedené vymenované vlastnosti.

Pre generovanie interaktívne grafické tabuľky použite rutinu Out-GridView. Keď zřetězíte výstup s rutinou Out-GridView, objaví sa grafická tabuľka, ktorú môžete filtrovať, triediť a ľahko kopírovať do iných programov s podporou tabuľkových dát, ako je napríklad Excel. Na obrázku vidíte výstup príkazu Get-Process | Select-Object * | Out-GridView

Pokročilé postupy pre Windows
V tomto príklade je rutina GetProcess najskôr zreťazenie s príkazom Select-Object *, pretože rutina Out-GridView na rozdiel od rutiny Format-Table neposkytuje parameter -Property. Príkaz Select-Object * odovzdá všetky vlastnosti objektu vráteného rutinou Get-Process rutine Out-GridView v ďalšej fáze zreťazenie. Zobrazením rutiny Out-GridView možno manipulovať podobnými postupmi, aké sa používajú v mnohých iných programoch windows (vyskúšajte si všetko kliknutím na názvy stĺpcov, filter umožní rýchlu orientáciu, kritéria zobrazenie môžete meniť podľa potreby). Výstup môžete filtrovať aj pomocou rutiny Where-Object. Napríklad Get-Service | Where-Object {$_.Status -eq "Stopped"} zobrazí služby so stavom Stopped. Rutina Sort-Object dovoľuje mnohými užitočnými spôsobmi zoradiť výstup rutiny podľa jednej alebo viac vlastností výsledného objektu. Ak vynecháte parameter -Property, rutina Sort-Object bude triediť podľa predvolené vlastnosti. Napríklad Get-Childitem | Sort-Object zotriedi obraz aktuálneho adresára podľa vlastnosti Name, ktorá je v tomto prípade predvolené. Ak potrebujete triediť podľa viacerých vlastností, doplňte za parameter -Property zoznam oddelený čiarkami. Keď zřetězíte rutinu Sort-Object s rutinou Select-Object, môžete dosiahnuť napríklad vrátenie najväčších či najmenších n položiek z výsledného objektu. Napríklad Get-Process | Sort-Object -Property WS | Select-Object -Last 10 vráti procesy s 10 najväčšími hodnotami vlastnosti WS (working set). Keď miesto reťazca -Last 10 uvediete reťazec -first 10, dostanete položky s najmenšími hodnotami.

Pokiaľ chcete presmerovať výstup na predvolenú tlačiareň, zřetězuje ho s rutinou Out-Printer. Ak chcete použiť inú než predvolenú tlačiareň, zadajte jej názov uzavretý do úvodzoviek za názov rutiny Out-Printer. Napríklad Get-Content C: \ Users \ Martina \ Documents \ CoPress \ Pozn.txt | Out-Printer "Microsoft Print To PDF" odošle obsah súboru C: \ Users \ Martina \ Documents \ CoPress \ Pozn.txt na zariadenie s názvom Microsoft Print To PDF.

Používanie a vytváranie aliasov, uľahčenie zápisu príkazov, nápoveda

Alias predstavuje alternatívny názov rutiny. Okrem aliasov programu Cmd.exe, obsahuje aj mnoho ďalších aliasov, ktoré iba pomáhajú pri písaní. Trebárs výraz GSV predstavuje alias názvu rutiny Get-Service. Môžete tiež vytvárať svoje vlastné aliasy. Ak chcete zistiť, ktoré aliasy sú aktuálne dostupné (vrátane tých, ktoré ste sami vytvorili), zadajte príkaz get-alias. Ak vás zaujíma, či je k dispozícii alias pre určitú rutinu, zřetězuje rutinu Get-Alias s rutinou Where-Object. Napríklad Get-Alias | Where-Object { $_.definition -eq "Set-Variable" } vráti dva aliasy set a sv. Ak chcete vytvoriť nový alias, zadajte príkaz set-alias názov hodnota, kde názov označuje alias a hodnota predstavuje rutinu, funkciu, spustiteľný program alebo skript. Napríklad set-alias note notepad.exe vytvorí alias note, ktorý otvorí poznámkový blok. Aliasy, ktoré vytvoríte, sú platné iba pre aktuálnu reláciu. Ak ich chcete sprístupniť trvalo, zahrňte ich do svojho profilu.

Pre jednoduché operácie so systémom súborov (FileSystem) postačujú známe príkazy prostredia Cmd.exe, ktoré sa používajú ľahšie než príslušné rutiny prostredia PowerShell. Vďaka integrovaným aliasom nemusíte časom preverené postupy meniť. PowerShell podporuje známe symboly jednej bodky (.) A dvoch bodiek (..) pre aktuálny a nadradený adresár. Obsahuje tiež integrovanú premennú $ Home, ktorá reprezentuje domovský adresár (zodpovedá premenné prostredie HOMEPATH).

Možno skracovať aj názvy parametrov, tak napríklad príkazy Get-Process -name iexplore a Get-Process -n iexplore sú ekvivalentné. V príkazoch možno použiť zástupné znaky * a? a veľa rôznych "regulárnych výrazov", ktoré zodpovedajú znakovým reťazcom. Zoznámte sa s nimi pomocou príkazu get-help about_regular_ex­pressions.

Uchováva história nedávnych príkazov, ktorá uľahčuje opakované použitie predtým zadaného príkazu. Obsah história zobrazíte príkazom get-history. Každú položku v histórii identifikuje číslo ID. Položku možno na príkazový riadok vyvolať príkazom Invoke-history ID.

Prostredie PowerShell obsahuje sadu sprostredkovateľov, ktoré poskytujú prístup k rôznym typom dátových úložísk. Sprostredkovatelia sú programy platformy .NET Framework a ich dáta sú vystavené vo forme jednotiek, ktoré pripomínajú známe jednotky so systémom súborov. Takýmito sprostredkovateľmi je vyššie spomínaný Alias a FileSystem. Ďalšie informácie o sprostredkovateľoch získate zadaním príkazu get-help about_providers. Zaujímavým sprostredkovateľom je Registry, poskytuje jednotky pre dva podregistre HKLM a HKCU. Pomocou štandardnej notácie ciest možno prejsť na konkrétny podkľúča. Informácie o všetkých podkľúčoch databázy určitého kľúča dá zobraziť rutinou Get-Childitem. Napríklad Get-Childitem -Path HKCU: \ software \ microsoft vráti informácie o všetkých podkľúčoch databázy kľúča HKCU: \ Software \ Microsoft. Informácie o práci s registrami získate zadaním príkazu get-help registre.

Pre rutiny Set-Location, Get-Childitem, Move-Item, Copy-Item, Get-Content, New-Item, Remove-Item či Get-Acl sú k dispozícii aj užitočné voliteľné parametre. Zadaním príkazu get-help název_rutiny získate informácie o používaní týchto parametrov. Sú to napríklad -Credential, -Delimiter, -Encoding a ďalšie.

Prostredie PowerShell poskytuje mnoho funkcií, vďaka ktorým sa pri práci s prostredím môžete učiť nové postupy. Informácie pomocníka o ľubovoľnej rutine zobrazíte zadaním príkazu get-help název_rutiny.

Ak potrebujete zistiť, ktorá rutina sa najlepšie hodí pre daný problém, môžete použiť rutinu Get-Command. Ak doplníte ho * (Get-Command *) zobrazí sa dlhý zoznam, ktorý obsahuje všetky súbory vo všetkých zložkách, ktoré sú uvedené v aktuálnej premennej prostredia Path. Pridaním parametra -Noun upresníte oblasť zadania. Napríklad príkaz get-command -noun EventLog. Dostanete názvy a definície rutín Clear-EventLog, Get-EventLog, Limit-EventLog, New-EventLog, Remove-EventLog, Show-EventLog a Write-EventLog.

Skriptovanie v prostredí PowerShell

Skript prostredie PowerShell je textový súbor s príponou PS1. Skript môžete vytvoriť v ľubovoľnom editore neformátovaného textu [úplne postačí Notepad (Poznámkový blok)], alebo môžete použiť Integrované skriptovací prostredie (ISE).

Viac sa dozviete na https://msdn.microsoft.com/...s/powershell

Napísal: Ing Ivan Šereda

Literatúra

  • 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šetky články v sekcii
Pokročilé postupy pre Windows
Článok pre vás napísal itnavi
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje tvorbě a správě webových stránek a programování v C#
Aktivity