Geek School Dowiedz się, jak rozszerzyć PowerShell
PowerShell oferuje dwa sposoby rozszerzenia powłoki. Możesz użyć snapinów, które są tylko binarne i są rozwijane w pełni rozwiniętym języku programowania, takim jak C #, lub możesz użyć modułów, które mogą być zarówno binarne, jak i oparte na skryptach.
Zapoznaj się z poprzednimi artykułami z serii:
- Dowiedz się, jak zautomatyzować system Windows za pomocą programu PowerShell
- Nauka korzystania z poleceń cmdlet w PowerShell
- Nauka korzystania z obiektów w PowerShell
- Nauka formatowania, filtrowania i porównywania w PowerShell
- Naucz się korzystać z Remotingu w PowerShell
- Korzystanie z PowerShell w celu uzyskania informacji o komputerze
- Praca z kolekcjami w PowerShell
I pozostańcie czujni przez resztę serii przez cały tydzień.
Snapins
Snapiny są takie w zeszłym roku. Odrzucając wszystkie żarty, snapiny nigdy nie trafiły do społeczności PowerShell, ponieważ większość programistów nie jest programistami i można pisać tylko snapiny w języku takim jak C #. Niemniej jednak niektóre produkty używają snapinów, na przykład Web Deploy. Aby zobaczyć, jakie snapiny są dostępne do użycia w powłoce, użyj następującego polecenia:
Get-PSSnapin -Registered
Aby użyć poleceń dodanych przez snapin, musisz najpierw zaimportować go do swojej sesji i możesz to zrobić tak:
Dodaj-PSSnapin -Name WDeploySnapin3.0
W tym momencie pojawi się błąd, jeśli nie masz zainstalowanego przystawki Web Deploy. Jeśli masz zainstalowany, tak jak ja, to zostanie zaimportowany do twojej sesji. Aby uzyskać listę poleceń dostępnych w snapinie, możesz po prostu użyć polecenia cmdlet Get-Command:
Get-Command -Module WDeploy *
Uwaga: Technicznie nie jest to moduł, ale z jakiegoś powodu nadal musisz używać parametru Module.
Moduły
Moduły są nowsze i stanowią krok naprzód. Mogą być zarówno skryptowane przy użyciu PowerShell, jak i kodowane w języku takim jak C #. Większość wbudowanych poleceń jest również podzielona na moduły. Aby wyświetlić listę modułów w systemie, możesz użyć następującego polecenia:
Get-Module -ListDostępny
W miarę aktualizacji produktów ich odpowiedniki PowerShell są migrowane do modułów. Na przykład SQL miał snapin, ale teraz składa się z modułów.
Aby móc korzystać z modułu, musisz go najpierw zaimportować.
Import-Module -Nazwa SQLASCMDLETS
Możesz użyć tej samej sztuczki, której używaliśmy w snapinach do wyświetlenia wszystkich poleceń dodanych przez moduł do powłoki.
Pozostawia to pytanie: w jaki sposób PowerShell wie, jakie snapiny i moduły posiadasz w swoim systemie? Cóż, snapy są trochę uciążliwe i trzeba je zainstalować. Część procesu instalacji obejmuje utworzenie kilku wpisów rejestru, które przegląda PowerShell, aby znaleźć informacje o snapach. Z drugiej strony moduły można zarejestrować w powłoce, umieszczając je w jednej z lokalizacji w zmiennej środowiskowej PSModulePath. Alternatywnie możesz po prostu dodać ścieżkę do modułu do zmiennej środowiskowej.
($ env: PSModulePath) .Split (";")
To wypluje zawartość zmiennej. Zauważ, że jeśli masz zainstalowany moduł taki jak SQL, to jak zmodyfikował zmienną tak, aby zawierała lokalizację modułu SQL.
Automatyczne ładowanie modułu
PowerShell 3 wprowadził niesamowitą nową funkcję, która ma kilka nazw. Żadne z nich nie jest oficjalne, ale "Automatyczne ładowanie modułów" jest najlepszym tego opisem. Zasadniczo pozwala na użycie poleceń cmdlet należących do modułu zewnętrznego bez bezpośredniego importowania modułu za pomocą polecenia cmdlet Import-Module. Aby to zobaczyć, najpierw usuń wszystkie moduły ze swojej powłoki, używając następującego polecenia:
Get-Module | Usuń-moduł
Następnie możesz sprawdzić, czy nie masz modułów załadowanych za pomocą:
Moduł Get
Teraz użyj polecenia cmdlet, które nie znajduje się w bibliotece rdzenia. Połączenie testowe jest dobre:
Testowanie połączenia localhost
Jeśli ponownie sprawdzisz załadowane moduły, zobaczysz, że rzeczywiście załadował moduł.
To wszystko na dziś chłopaki, dołącz do nas jutro po więcej.