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.
Przeczytaj poprzednie artykuły z serii:
I pozostańcie czujni przez resztę serii przez cały tydzień.
Snapiny są takie w zeszłym roku. Odrzucając wszystkie żarty, snapiny nigdy nie trafiły do społeczności PowerShell, ponieważ większość skrypciarzy nie jest programistami i można pisać tylko snapiny w języku takim jak C #. Mimo to 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 snapin, 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 są nowsze i są drogą do przodu. 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 -ListAvailable
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 użyć modułu, musisz go najpierw zaimportować.
Import-Module -Nazwa SQLASCMDLETS
Możesz użyć tej samej sztuczki, której użyto 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órych PowerShell szuka, 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.
PowerShell 3 wprowadził niesamowitą nową funkcję, która ma kilka nazw. Żadne z nich nie jest oficjalne, ale najlepszym sposobem jest "Ładowanie modułów modułowych". Zasadniczo pozwala na użycie poleceń cmdlet należących do modułu zewnętrznego bez jawnego 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 głównej bibliotece. Połączenie testowe jest dobre:
Test-Connection 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.