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

Obsah:

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

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

Video: Geek School: Naučte sa ako rozšíriť PowerShell
Video: Why is My Mac System Storage More than 100GB? - YouTube 2024, Apríl
Anonim
PowerShell ponúka dva spôsoby, ako rozšíriť shell. Môžete použiť buď snapins, ktoré sú binárne iba orientačné a vyvinutý v plnohodnotné programovací jazyk, ako je C #, alebo môžete použiť moduly, ktoré môžu byť binárne rovnako ako scenár vychádza.
PowerShell ponúka dva spôsoby, ako rozšíriť shell. Môžete použiť buď snapins, ktoré sú binárne iba orientačné a vyvinutý v plnohodnotné programovací jazyk, ako je C #, alebo môžete použiť moduly, ktoré môžu byť binárne rovnako ako scenár vychádza.

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 ako používať objekty v PowerShell
  • Formátovanie učenia, filtrovanie a porovnávanie v systéme PowerShell
  • Naučte sa používať Remoting v PowerShell
  • Použitie nástroja 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 série.

Snapins

Snapins sú tak minulý rok. Všetky vtipy stranou, snapins nikdy skutočne neuchytil medzi komunitu PowerShell, pretože väčšina scripters nie sú vývojári a môžete písať iba 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ú pre vás k dispozícii vo vašom 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:
Ak chcete použiť príkazy pridané snapinom, musíte ho najprv importovať do relácie a môžete to urobiť takto:

Add-PSSnapin -Name WDeploySnapin3.0

V tomto okamihu sa zobrazí chyba, ak nemáte nainštalovaný modul Web Deploy snapin. 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 –Module WDeploy*

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

Image
Image

moduly

Moduly sú novšie a sú to cesta vpred. Môžu byť napísané pomocou PowerShell, ako aj kódované v jazyku ako C #. Väčšina zabudovaný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 tvorený modulmi.
Pri aktualizácii produktov sa ich náprotivky PowerShell migrujú na moduly. Napríklad, SQL používal snapin, ale teraz je tvorený modulmi.
Ak chcete použiť modul, musíte ho najprv importovať.
Ak chcete použiť modul, musíte ho najprv importovať.

Import-Module -Name 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 ponecháva otázku: ako PowerShell vie, čo snapíny a moduly máte na vašom 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 shell jednoduchým umiestnením do jedného z umiestnení v premennej prostredia PSModulePath. Prípadne môžete jednoducho pridať cestu k modulu k premennej prostredia.
Takže ponecháva otázku: ako PowerShell vie, čo snapíny a moduly máte na vašom 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 shell jednoduchým umiestnením do jedného z umiestnení v premennej prostredia PSModulePath. Prípadne môžete jednoducho pridať cestu k modulu k premennej prostredia.

($env:PSModulePath).Split(“;”)

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

Image
Image

Automatické načítanie modulu

PowerShell 3 predstavil úžasnú novú funkciu, ktorá má niekoľko mien. Žiadny z nich nie je oficiálny, ale "Modul Auto Loading" je najlepším popisom. V zásade vám umožňuje používať rutiny, ktoré patria do externého modulu bez explicitného importu 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-Module | 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 základnej knižnici. Test-pripojenie je dobré:
Teraz použite cmdlet, ktorý nie je v základnej knižnici. Test-pripojenie je dobré:

Test-Connection localhost

Odporúča: