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

25.11.2014

Programowalny router mobilny

Huawei AR511
21.11.2014

Strażnicy nowej generacji

FortiGate-300D i FortiGate-500D
18.11.2014

Dysk i odzysk

Seagate Surveillance HDD
17.11.2014

Nie tylko o Ukrainie podczas...

Zakończył się SECURE 2014 - XVIII Konferencja na temat bezpieczeństwa teleinformatycznego
13.11.2014

Szybki jak F-117

Netgear Nighthawk R7500
07.11.2014

Samoobsługowe BI

Qlik Sense
04.11.2014

Ochrona proaktywna

Trend Micro Mobile Security 2015 dla Android i iOS
31.10.2014

Do trzech urządzeń

Logitech Multi-Device Keyboard K480
28.10.2014

Szybki skaner z ADF

Canon imageFORMULA DR-F120

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"