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.