Skriptování

Jestliže se rozhodneme vytvořit nový skript nebo editovat stávající, říkáme, že skriptujeme. Při skriptování bychom měli dodržovat určitá pravidla jako je například ošetření chyb, analýza nebo třeba komentování skriptu. Používáme editor společnosti Microsoft PowerShell ISE. Textovému souboru, který obsahuje posloupnost příkazů z prostředí PowerShell a využívá programovací techniky, říkáme skript. Jeho přípona je .ps1. Jejich spouštění je omezenou politikou spuštění - Execution policy.
Psaní skriptu
Při psaní skriptu si na začátku musíme uvědomit, za jakým účelem jej vytváříme. Promyslíme si určitá rizika, která se mohou objevit, a jejich případné řešení. V některých případech je zapotřební určit cílovou platformu. Pro psaní platí určitá pravidla. Musíme dodržovat syntaxi a pro čitelnost bychom se měli vyvartovat aliasům. Skript by měl obsahovat komentáře v častém kódu, aby bylo jasné, co se v tomto kroku provede. Pokud se ve skriptu vyskytují proměnné, pole, objekty a funkce, pojmenujeme je tak, aby názve souvisel s obsahem nebo činností. Pokud interpretujeme proměnné, používáme obrácené apostrofy. Dojde-li za běhu skript k chybě, skript by měl být na tuto situaci připravený a měl by si s chybou poradit. Chybová hláška s případným řešením by měla být exportována do souboru. Skript by také měl poskytovat informace za běhu o svém stavu např. “přidávám uživatele“.
Seznam částí skriptu

Aplikační logika
Řešení konkrétních požadavků na skript poskytuje aplikační logika. V této části promýšlíme jednotlivé kroky k vyřešení požadavku a rozhodujeme se, jaké cmdlety k tomu použijeme. Jako příklad si uvedeme skript na tvorbu lokálních uživatelů. Aplikační logika bude tedy řešit posloupnost cmdletů, které přidají do zařízení lokálního uživatele. Příkazy vybíráme podle toho, abychom co nejméně zatížili systém a dosáhli požadované funkčnosti.
Ošetření chyb
Nedílnou součástí skriptů by mělo být zajištění odchytávání a ošetření běhových chyb. Dojde-li k chybě, mohou nastat 2 situace. První situací je výjimka, u které můžeme nastavit, co se stane, pokud k ní dojde. Defaultně u ní PowerShell pokračuje dále a vypíše chybovou hlášku, která je uložená v proměnné, popřípadě v poli $error. Jestliže je uloženo více chyb, pak je nejnovější na pozici $error[0]. Druhá situace je fatální ukončení, kdy je běh skriptu zastaven neočekávaně ukončen. Pokud dojde k výjimce za běhu, můžeme nastavit parametrem –ErrorAction, co se má stát. Konkrétně vybíráme z možností chování, které uvedeme jako hodnotu tohoto parametru.
            #Neúspěšná akce Cmdlet chyba neexistuje
            Chyba
            Write-Host "Bez chyby? "$?
            #Vypíšeme si poslední chybu
            $error[0]
    


Hodnoty chování:
Hodnota Inquire upozorní uživatele a vyžaduje jeho potvrzení pro další běh skriptu. Continue zobrazí chybovou hlášku a pokračuje dále. Toto chování je nastaveno jako výchozí. SilentlyContinue zvolíme, pokud nechceme zobrazit chybu. Skript volně pokračuje dál. Poslední hodnotou je Stop, který zobrazí chybu a skript se zastaví. Mezi další ošetření chyby ve skriptu patří Trap. Pokud tedy k chybě dojde, vykoná se blok Trap. Použijeme-li v bloku klíčové slovo Continue skript, bude pokračovat dále. Druhé klíčové slovo, které můžeme využít, je Break, který průběh skriptu zastaví. Před blok skriptu můžeme do hranatých závorek definovat typ chyby, při jaké se Trap aktivuje. Pokročilým odchytáváním chyb je takzvaná konstrukce Try, Catch a Finally. Blok Try obsahuje kód, ve kterém může dojít k chybě. Catch obsahuje blok kódu, který se provede, pokud se vyskytne v Try chyba. Před blok kódu Catch můžeme umístit do hranatých závorek typ chyb, na který má Catch reagovat. Blok kódu Finally se provede pokaždé a jeho užití není povinné.
            #Změna akce na hodnotu Inquire
            $ErrorActionPreference = "Inquire"
            #Vybere pouze chyby tohoto typu = nebyl nalezen cmdlet
            trap [System.Management.Automation.CommandNotFoundException] 
            {
            "Byl zadán chybný cmdlet"
            }
            chybnýCmdlet
    


Validace vstupu
Při tvorbě skriptu musíme zajistit správný formát vstupních dat, a to jak od systému, tak i od uživatele. Špatný formát vstupních dat by mohl způsobit ukončení běhu skriptu. Pokud například při přidávání uživatele nebudeme chtít, aby se do jména nemohlo poslat cokoliv jiného, než co je ve formátu string a má alespoň 1 a více znaků, měli bychom tuto informaci umístit do poznámek.
Logování
Jedná se o analýzu toho, jaký byl průběh skriptu a kdy byl spuštěn. Doporučuje se, aby se kompletní analýze uložila jako záznam do souboru ve formátu CSV nebo XML. Např. do souboru analyza.csv si při přidávání jmen můžeme například zaznamenat uložená nová jména, shodné uživatele, chyby, data, doby trvání a hardwarové vytížení za běhu.
Konstrukce skriptu
Poskládání všech předešlých častí skriptu do jednoho kompletního skriptu, který bude plnit to, co bylo původně zadáno. Části na sebe musejí navazovat, popřípadě spolu musejí být propojené. Neměly by se vzájemně ovlivňovat tak, že dojde k chybě.

© 2019 Copyright: powershell.www3.cz