If-Koubou

Geek School: Dowiedz się, jak rozszerzyć PowerShell

Geek School: Dowiedz się, jak rozszerzyć PowerShell (Jak)

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:

  • 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
  • Używanie PowerShell do uzyskiwania 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ść 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

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.

Automatyczne ładowanie modułu

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.