Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.

03.09.2014

Praca w chmurze

NVidia Quadro
01.09.2014

Superjasno dla biznesu

ViewSonic Pro8520HD
28.08.2014

Wielofunkcyjnie

Samsung CLX i SCX
27.08.2014

Cisco Secure 2014

Cisco Secure to cykliczna konferencja dla specjalistów zajmujących się bezpieczeństwem...
25.08.2014

Z większą mocą

AMD A10-7800
19.08.2014

II Kongres Profesjonalistów...

Praktyczne zastosowanie nowych technologii
18.08.2014

Testowe wersje nowych...

Firma ESET udostępniła wersje testowe swoich najnowszych rozwiązań zabezpieczających -...
31.07.2014

Kamera sieciowa

Axis M3027-PVE
28.07.2014

SSD do centrów danych

Samsung 845DC EVO

Dostawcy WMI

Data publikacji: 01-12-2012 Autor: Bartosz Bielawski

Windows PowerShell od wersji drugiej umożliwia nam tworzenie funkcji, które łudząco przypominają cmdlety – mają podobne zachowania, podobne parametry, łatwo można uzupełnić je o pomoc. Nie ma jednak wbudowanej możliwości, by w podobny sposób zbudować własnego dostawcę. Samo stworzenie swojego dostawcy nie jest bowiem sprawą prostą.

Ponieważ jednak PowerShell umożliwia stosunkowo prostą rozbudowę przez społeczność, a rzeczywistość nie toleruje pustki – luka ta została wypełniona przez wieloletniego MVP w dziedzinie PowerShella – Oisina Grehana. Jest on twórcą projektu PowerShell Script Provider (psprovider.codeplex.com), dzięki któremu dostawców PowerShella można tworzyć za pomocą skryptów. Dostawcy w PowerShellu są rozszerzeniem funkcjonalności, która już w systemach takich jak DOS umożliwiała poruszanie się po systemie plików. W PowerShellu w analogiczny sposób możemy „wędrować” po rejestrze, magazynie certyfikatów, a po zainstalowaniu rozmaitych dodatków – również Active Directory czy konfiguracji IIS. Tworzenie dysków PowerShellowych, nawet za pomocą modułu Oisina, nie należy do najprostszych czynności.


Spróbujemy stworzyć dostawcę, którego brak wydaje się dość oczywisty: większość hierarchicznych zasobów ma już dostawców albo w samym systemie (pliki, rejestr), albo w jednym z modułów/wtyczek stworzonym przez Microsoft na potrzeby danej technologii (Active Directory, SQL, IIS). Wyjątek stanowi repozytorium WMI: struktura zdecydowanie hierarchiczna, dla której dostawca (przynajmniej oficjalny) nigdy nie powstał.

 

Jak w każdym projekcie tego typu musimy wyznaczyć założenia i cel, który zamierzamy zrealizować. Wydaje się, że optymalne rozwiązanie to struktura drzewiasta z dwoma rodzajami „folderów”: pierwszy rodzaj będzie odpowiadał istniejącym w lokalnym repozytorium przestrzeniom nazw, drugi – klasom istniejącym w poszczególnych przestrzeniach nazw. Naszymi „plikami”, znajdującymi się wewnątrz poszczególnych klas, będą ich instancje. W pierwszej kolejności skupimy się na prezentacji danych, bez ich modyfikowania. Bazować przy tym będziemy na dostępnym już w wersji pierwszej cmdlecie Get-WmiObject. Postaramy się zaimplementować wszystkie elementy niezbędne do swobodnego poruszania się po naszej drzewiastej strukturze, przeglądania zawartości folderów (również rekursywnego) i dopełniania nazw tabulatorem w czasie interaktywnego przeszukiwania naszego PowerShellowego dysku.

Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.

All rights reserved © 2013 Presscom / Miesięcznik "IT Professional"