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.