Domovská » jak » Geek School Naučte se, jak rozšířit PowerShell

    Geek School Naučte se, jak rozšířit PowerShell

    PowerShell nabízí dva způsoby rozšíření shellu. Můžete buď použít snapiny, které jsou pouze binární a vyvinuty v plnohodnotném programovacím jazyce, jako je C #, nebo můžete použít moduly, které mohou být binární i skriptové.

    Ujistěte se, že jste si přečetli předchozí články v sérii:

    • Naučte se automatizovat systém Windows pomocí nástroje PowerShell
    • Naučte se používat Cmdlets v PowerShell
    • Učení o používání objektů v prostředí PowerShell
    • Formátování učení, filtrování a porovnávání v prostředí PowerShell
    • Naučte se používat Remoting v PowerShell
    • Použití funkce PowerShell pro získání informací o počítači
    • Práce s kolekcemi v prostředí PowerShell

    A zůstaňte v klidu po zbytek série celý týden.

    Snapins

    Snapins jsou tak loni. Všichni vtipy stranou, snapiny nikdy opravdu chytil mezi komunitou PowerShell, protože většina scripters nejsou vývojáři a můžete psát pouze snapins v jazyce, jako je C #. Nicméně stále existují některé produkty, které používají snapiny, jako například Web Deploy. Chcete-li zjistit, jaké snapiny jsou k dispozici pro použití ve shellu, použijte následující příkaz:

    Get-PSSnapin -Registered

    Chcete-li použít příkazy přidané snapinem, musíte jej nejprve importovat do relace a můžete to udělat takto:

    Přidat-PSSnapin -Name WDeploySnapin3.0

    V tomto okamžiku se zobrazí chybová zpráva, pokud nemáte nainstalován modul snapin Web Deploy. Pokud ji nainstalujete, stejně jako já, bude importován do vaší relace. Chcete-li získat seznam příkazů dostupných v modulu snapin, můžete jednoduše použít příkaz Get-Command cmdlet:

    Get-Command-Modul WDeploy *

    Poznámka: Technicky nejde o modul, ale z nějakého důvodu musíte stále použít parametr modulu.

    Moduly

    Moduly jsou novější a jsou cestou vpřed. Mohou být skriptovány pomocí PowerShell, stejně jako kódované v jazyce jako C #. Většina vestavěných příkazů je také uspořádána do modulů. Chcete-li zobrazit seznam modulů ve vašem systému, můžete použít následující příkaz:

    Get-Module -ListAvailable

    Protože jsou produkty aktualizovány, jejich protějšky PowerShell se migrují do modulů. Například SQL měl snapin, ale nyní je tvořen moduly.

    Abyste mohli používat modul, musíte ho nejprve importovat.

    Import-Modul - pojmenujte SQLASCMDLETS

    Pomocí stejného triku, který jsme použili s snapinem, můžete použít všechny příkazy, které modul přidal do shellu.

    Takže to ponechává otázku: jak PowerShell ví, co snapíny a moduly máte na vašem systému? No, snapiny jsou trochu bolesti a musí být instalovány. Součástí procesu instalace je vytvoření několika položek registru, které společnost PowerShell hledá, aby zjistila informace o snapin. Moduly na druhou stranu mohou být registrovány v shellu jednoduchým umístěním do jednoho z umístění v proměnné prostředí PSModulePath. Případně můžete přidat cestu k modulu k proměnné prostředí.

    ($ env: PSModulePath) .Split (";")

    To vyplivne obsah proměnné. Všimněte si, že pokud máte modul jako SQL nainstalovaný, jak změnil proměnnou tak, aby zahrnovala umístění modulu SQL.

    Automatické načítání modulu

    PowerShell 3 představil úžasný nový prvek, který má několik jmen. Žádný z nich není oficiální, ale "Modul Auto Loading" je tím nejlepším popisem. V zásadě vám umožňuje používat cmdlety, které patří do externího modulu, aniž by se modul explicitně importoval pomocí cmdletu Import-Module. Chcete-li to vidět, nejprve odeberte všechny moduly z shellu pomocí následujícího příkazu:

    Get-Module | Remove-Module

    Poté můžete zkontrolovat, zda nemáte žádné moduly načteny pomocí následujícího:

    Get-Module

    Nyní použijte cmdlet, který není v základní knihovně. Testovací připojení je dobré:

    Testování připojení localhost

    Pokud znovu zkontrolujete načtené moduly, uvidíte, že modul skutečně načte.

    To je všechno pro dnešní lidi, zítra se k nám připojte.