Úvodná » ako » Geek School Naučte sa ako rozšíriť PowerShell

    Geek School Naučte sa ako rozšíriť PowerShell

    PowerShell ponúka dva spôsoby, ako rozšíriť shell. Môžete použiť snapiny, ktoré sú iba binárne a rozvíjajú sa v plne rozvinutom programovacom jazyku, napríklad C #, alebo môžete použiť moduly, ktoré môžu byť binárne aj skriptové.

    Nezabudnite si prečítať predchádzajúce články v sérii:

    • Naučte sa ako automatizovať systém Windows pomocou nástroja PowerShell
    • Naučiť sa používať Cmdlets v PowerShell
    • Učenie o používaní objektov v systéme PowerShell
    • Formátovanie učenia, filtrovanie a porovnávanie v systéme PowerShell
    • Naučte sa používať Remoting v PowerShell
    • Použitie PowerShell na získanie informácií o počítači
    • Práca s kolekciami v systéme PowerShell

    A zostávajte celú týždeň na zvyšok seriálu.

    Snapins

    Snapins sú tak minulý rok. Všetky vtipy stranou, snapins nikdy naozaj chytil medzi komunitou PowerShell, pretože väčšina scripters nie sú vývojári a môžete len písať snapins v jazyku, ako je C #. Napriek tomu však stále existujú niektoré produkty, ktoré používajú snapiny, napríklad Web Deploy. Ak chcete zistiť, aké snapiny sú k dispozícii na používanie v shell, použite nasledujúci príkaz:

    Get-PSSnapin -Registered

    Ak chcete použiť príkazy pridané snapinom, musíte ho najprv importovať do relácie a môžete to urobiť takto:

    Add-PSSnapin - Namiesto WDeploySnapin3.0

    V tomto okamihu sa zobrazí chyba, ak nemáte nainštalovaný program Web Deploy. Ak ho máte nainštalovanú, ako ja, potom bude importovaná do vašej relácie. Ak chcete získať zoznam príkazov dostupných v nástroji snapin, jednoducho použite cmdlet Get-Command:

    Get-Command-Modul WDeploy *

    Poznámka: Z technického hľadiska to nie je modul, ale z nejakého dôvodu stále používate parameter modulu.

    moduly

    Moduly sú novšie a sú to cesta vpred. Môžu byť napísané pomocou PowerShell aj kódované v jazyku ako C #. Väčšina vstavaných príkazov je tiež organizovaná do modulov. Ak chcete zobraziť zoznam modulov vo vašom systéme, môžete použiť nasledujúci príkaz:

    Get-Module -ListAvailable

    Pri aktualizácii produktov sa ich náprotivky PowerShell migrujú na moduly. Napríklad SQL používal snapin, ale teraz je vytvorený z modulov.

    Aby ste mohli používať modul, musíte ho najprv importovať.

    Import-Module - Namiesto SQLASCMDLETS

    Môžete použiť rovnaký trik, ktorý sme použili pri snapinoch, aby ste si pozreli všetky príkazy, ktoré modul pridal do shellu.

    Takže to ponecháva otázku: ako PowerShell vie, čo máte na svojom systéme? No, snapins sú trochu bolesti a musia byť nainštalované. Časť inštalačného procesu zahŕňa vytvorenie niekoľkých položiek databázy Registry, ktoré PowerShell hľadá, aby našli informácie o snapinoch. Moduly, na druhej strane, je možné zaregistrovať pomocou shellu jednoduchým umiestnením do jedného z umiestnení v premennej prostredia PSModulePath. Alternatívne môžete jednoducho pridať cestu k modulu do premennej prostredia.

    ($ ENV: PSModulePath) metódy split ( ";")

    To vyleje obsah premennej. Všimnite si, že ak máte modul ako SQL nainštalovaný, ako to zmenilo premennú tak, aby obsahovala umiestnenie modulu SQL.

    Automatické načítanie modulu

    PowerShell 3 predstavil úžasnú novú funkciu, ktorá má niekoľko mien. Žiadny z nich nie je oficiálny, ale najlepší popis je "Modul Auto Loading". V zásade vám umožňuje použiť rutiny, ktoré patria do externého modulu, bez explicitného importovania modulu pomocou cmdletu Import-Module. Ak to chcete vidieť, najskôr odstráňte všetky moduly z vášho shellu pomocou nasledujúceho príkazu:

    Get-Modul Remove-Module

    Potom môžete skontrolovať, či nemáte zavedené žiadne moduly pomocou nasledujúceho:

    Get-Module

    Teraz použite cmdlet, ktorý nie je v knižnici jadra. Test-pripojenie je dobré:

    Testovanie pripojenie localhost

    Ak znova skontrolujete načítané moduly, uvidíte, že modul naozaj načíta.

    To je všetko pre dneska chlapcov, pridajte sa zajtra na ďalšie.