Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Należy zaimplementować dostawcę programu Windows PowerShell, jeśli produkt lub konfiguracja uwidacznia zestaw przechowywanych danych, takich jak baza danych, którą użytkownik będzie chciał nawigować lub przeglądać. Ponadto jeśli produkt udostępnia kontener, nawet jeśli nie jest kontenerem wieloszczepowym, warto zaimplementować dostawcę programu Windows PowerShell. Na przykład możesz zaimplementować dostawcę kontenera programu Windows PowerShell, jeśli czasownik cmdlet Copy, Move, Rename, New lub Remove ma sens jako operacja na danych produktu lub konfiguracji.
Ścieżki programu Windows PowerShell identyfikują dostawcę
Środowisko uruchomieniowe programu Windows PowerShell używa ścieżek środowiska Windows PowerShell w celu uzyskania dostępu do odpowiedniego dostawcy programu Windows PowerShell. Gdy polecenie cmdlet określa jedną z tych ścieżek, środowisko uruchomieniowe wie, którego dostawcy używać do uzyskiwania dostępu do skojarzonego magazynu danych. Ścieżki te obejmują ścieżki kwalifikowane przez dysk, ścieżki kwalifikowane przez dostawcę, ścieżki bezpośrednie dostawcy i ścieżki wewnętrzne dostawcy. Każdy dostawca programu Windows PowerShell musi obsługiwać co najmniej jedną z tych ścieżek.
Aby uzyskać więcej informacji na temat ścieżek programu Windows PowerShell, zobacz Jak działa program Windows PowerShell.
Definiowanie ścieżki Drive-Qualified
Aby umożliwić użytkownikowi dostęp do danych znajdujących się na dysku fizycznym, dostawca programu Windows PowerShell musi obsługiwać ścieżkę kwalifikowaną przez dysk. Ta ścieżka rozpoczyna się od nazwy dysku, po którym następuje dwukropek (:) na przykład mydrive:\abc\bar).
Definiowanie ścieżki Provider-Qualified
Aby umożliwić środowisku uruchomieniowemu programu Windows PowerShell inicjowanie i uninitialize dostawcy, dostawca programu Windows PowerShell musi obsługiwać ścieżkę kwalifikowaną przez dostawcę. Na przykład FileSystem::\\uncshare\abc\bar to ścieżka kwalifikowana przez dostawcę systemu plików dostarczana przez program Windows PowerShell.
Definiowanie ścieżki Provider-Direct
Aby zezwolić na zdalny dostęp do dostawcy programu Windows PowerShell, powinna obsługiwać ścieżkę bezpośrednią dostawcy, aby przekazać ją bezpośrednio do dostawcy programu Windows PowerShell dla bieżącej lokalizacji. Na przykład dostawca rejestru windows PowerShell może użyć \\server\regkeypath jako ścieżki bezpośredniej dostawcy.
Definiowanie ścieżki Provider-Internal
Aby umożliwić dostawcy dostęp do danych przy użyciu interfejsów programowania aplikacji innych niż Windows PowerShell (API), dostawca programu Windows PowerShell powinien obsługiwać ścieżkę wewnętrzną dostawcy. Ta ścieżka jest wskazywana po ścieżce "::" w ścieżce kwalifikowanej przez dostawcę. Na przykład ścieżka wewnętrzna dostawcy dla dostawcy systemu plików windows PowerShell to \\uncshare\abc\bar.
Zmienianie przechowywanych danych
Podczas zastępowania metod modyfikujących bazowy magazyn danych zawsze wywołaj metodę System.Management.Automation.Provider.CmdletProvider.WriteItemObject* metodę z najbardziej up-to-date wersji elementu zmienionej przez tę metodę. Infrastruktura dostawcy określa, czy obiekt elementu musi zostać przekazany do potoku, na przykład gdy użytkownik określa parametr -PassThru. Jeśli pobieranie najbardziej up-toelement -date jest kosztowną operacją (wydajność mądry), możesz przetestować właściwość Context.PassThru, aby określić, czy rzeczywiście musisz napisać wynikowy element.
Wybierz klasę bazową dostawcy
Program Windows PowerShell udostępnia szereg klas bazowych, których można użyć do zaimplementowania własnego dostawcy programu Windows PowerShell. Podczas projektowania dostawcy wybierz klasę bazową opisaną w tej sekcji, która jest najbardziej odpowiednia dla Twoich wymagań.
Każda klasa podstawowa dostawcy programu Windows PowerShell udostępnia zestaw poleceń cmdlet. W tej sekcji opisano polecenia cmdlet, ale nie opisuje ich parametrów.
Przy użyciu stanu sesji środowisko uruchomieniowe programu Windows PowerShell udostępnia kilka poleceń cmdlet lokalizacji niektórym dostawcom programu Windows PowerShell, takich jak polecenia cmdlet Get-Location, Set-Location, Pop-Locationi Push-Location. Aby uzyskać informacje o tych poleceniach cmdlet lokalizacji, możesz użyć polecenia cmdlet Get-Help.
CmdletProvider, klasa bazowa
Klasa System.Management.Automation.Provider.CmdletProvider definiuje podstawowego dostawcę programu Windows PowerShell. Ta klasa obsługuje deklarację dostawcy i dostarcza wiele właściwości i metod, które są dostępne dla wszystkich dostawców programu Windows PowerShell.
Klasa jest wywoływana przez polecenie cmdlet Get-PSProvider, aby wyświetlić listę wszystkich dostępnych dostawców dla sesji.
Implementacja tego polecenia cmdlet jest dostarczana przez stan sesji.
Uwaga
Dostawcy programu Windows PowerShell są dostępni do wszystkich zakresów języka programu Windows PowerShell.
DriveCmdletProvider, klasa bazowa
Klasa System.Management.Automation.Provider.DriveCmdletProvider definiuje dostawcę dysków programu Windows PowerShell, który obsługuje operacje dodawania nowych dysków, usuwania istniejących dysków i inicjowania dysków domyślnych. Na przykład dostawca systemu plików dostarczony przez program Windows PowerShell inicjuje stacje dysków dla wszystkich zainstalowanych woluminów, takich jak dyski twarde i stacje urządzeń CD/DVD.
Ta klasa pochodzi z klasy podstawowej System.Management.Automation.Provider.CmdletProvider. W poniższej tabeli wymieniono polecenia cmdlet uwidocznione przez tę klasę. Oprócz tych wymienionych polecenie cmdlet Get-PSDrive (uwidocznione przez stan sesji) jest powiązanym poleceniem cmdlet używanym do pobierania dostępnych dysków.
| Cmdlet | Definicja |
|---|---|
New-PSDrive |
Tworzy nowy dysk dla sesji i przesyła strumieniowo informacje o dysku. |
Remove-PSDrive |
Usuwa dysk z sesji. |
ItemCmdletProvider, klasa bazowa
Klasa System.Management.Automation.Provider.ItemCmdletProvider definiuje dostawcę elementów programu Windows PowerShell, który wykonuje operacje na poszczególnych elementach magazynu danych i nie zakłada żadnych możliwości kontenera ani nawigacji. Ta klasa pochodzi z klasy bazowej System.Management.Automation.Provider.DriveCmdletProvider. W poniższej tabeli wymieniono polecenia cmdlet uwidocznione przez tę klasę.
| Cmdlet | Definicja |
|---|---|
Clear-Item |
Czyści bieżącą zawartość elementów w określonej lokalizacji i zastępuje ją wartością "clear" określoną przez dostawcę. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
Get-Item |
Pobiera elementy z określonej lokalizacji i przesyła strumieniowo wynikowe obiekty. |
Invoke-Item |
Wywołuje domyślną akcję elementu w określonej ścieżce. |
Set-Item |
Ustawia element w określonej lokalizacji ze wskazaną wartością. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
Resolve-Path |
Rozpoznaje symbole wieloznaczne dla ścieżki programu Windows PowerShell i przesyła strumieniowo informacje o ścieżce. |
Test-Path |
Testuje określoną ścieżkę i zwraca true, jeśli istnieje i false w przeciwnym razie. To polecenie cmdlet jest implementowane w celu obsługi parametru IsContainer dla metody System.Management.Automation.Provider.CmdletProvider.WriteItemObject*. |
ContainerCmdletProvider, klasa bazowa
Klasa System.Management.Automation.Provider.ContainerCmdletProvider definiuje dostawcę kontenera programu Windows PowerShell, który uwidacznia kontener dla elementów magazynu danych użytkownikowi. Należy pamiętać, że dostawca kontenera programu Windows PowerShell może być używany tylko wtedy, gdy istnieje jeden kontener (bez zagnieżdżonych kontenerów) z elementami w nim. Jeśli istnieją zagnieżdżone kontenery, musisz zaimplementować dostawcę nawigacji programu Windows PowerShell.
Ta klasa pochodzi z klasy bazowej System.Management.Automation.Provider.ItemCmdletProvider. W poniższej tabeli zdefiniowano polecenia cmdlet zaimplementowane przez tę klasę.
| Cmdlet | Definicja |
|---|---|
Copy-Item |
Kopiuje elementy z jednej lokalizacji do innej. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
Get-ChildItem |
Pobiera elementy podrzędne w określonej lokalizacji i przesyła je strumieniowo jako obiekty. |
New-Item |
Tworzy nowe elementy w określonej lokalizacji i przesyła strumieniowo wynikowy obiekt. |
Remove-Item |
Usuwa elementy z określonej lokalizacji. |
Rename-Item |
Zmienia nazwę elementu w określonej lokalizacji. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
NavigationCmdletProvider, klasa bazowa
Klasa System.Management.Automation.Provider.NavigationCmdletProvider definiuje dostawcę nawigacji programu Windows PowerShell, który wykonuje operacje dla elementów korzystających z więcej niż jednego kontenera. Ta klasa pochodzi z klasy bazowej System.Management.Automation.Provider.ContainerCmdletProvider. W poniższej tabeli wymieniono polecenia cmdlet uwidocznione przez tę klasę.
| Cmdlet | Definicja |
|---|---|
Combine-Path |
Łączy dwie ścieżki w jedną ścieżkę przy użyciu ogranicznika specyficznego dla dostawcy między ścieżkami. To polecenie cmdlet przesyła strumieniowo ciągi. |
Move-Item |
Przenosi elementy do określonej lokalizacji. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
Powiązane polecenie cmdlet to podstawowe polecenie cmdlet Parse-Path dostarczone przez program Windows PowerShell. To polecenie cmdlet może służyć do analizowania ścieżki środowiska Windows PowerShell w celu obsługi parametru Parent. Przesyła strumieniowo ciąg ścieżki nadrzędnej.
Wybieranie interfejsów dostawcy do obsługi
Oprócz wyprowadzania z jednej z klas bazowych programu Windows PowerShell dostawca programu Windows PowerShell może obsługiwać inne funkcje, wyprowadzając je z co najmniej jednego z następujących interfejsów dostawcy. W tej sekcji zdefiniowano te interfejsy i polecenia cmdlet obsługiwane przez poszczególne. Nie opisuje parametrów poleceń cmdlet obsługiwanych przez interfejs. Informacje o parametrach polecenia cmdlet są dostępne w trybie online przy użyciu poleceń cmdlet Get-Command i Get-Help.
IContentCmdletProvider
Interfejs System.Management.Automation.Provider.IContentCmdletProvider definiuje dostawcę zawartości, który wykonuje operacje na zawartości elementu danych. W poniższej tabeli wymieniono polecenia cmdlet uwidocznione przez ten interfejs.
| Cmdlet | Definicja |
|---|---|
Add-Content |
Dołącza wskazane długości wartości do zawartości określonego elementu. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
Clear-Content |
Ustawia zawartość określonego elementu na wartość "clear". To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
Get-Content |
Pobiera zawartość określonych elementów i przesyła strumieniowo wynikowe obiekty. |
Set-Content |
Zastępuje istniejącą zawartość dla określonych elementów. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
IPropertyCmdletProvider
Interfejs System.Management.Automation.Provider.IPropertyCmdletProvider definiuje właściwość dostawcy programu Windows PowerShell, który wykonuje operacje na właściwościach elementów w magazynie danych. W poniższej tabeli wymieniono polecenia cmdlet uwidocznione przez ten interfejs.
Uwaga
Parametr Path dla tych poleceń cmdlet wskazuje ścieżkę do elementu zamiast identyfikowania właściwości.
| Cmdlet | Definicja |
|---|---|
Clear-ItemProperty |
Ustawia właściwości określonych elementów na wartość "clear". To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
Get-ItemProperty |
Pobiera właściwości z określonych elementów i przesyła strumieniowo wynikowe obiekty. |
Set-ItemProperty |
Ustawia właściwości określonych elementów ze wskazanymi wartościami. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
IDynamicPropertyCmdletProvider
Interfejs System.Management.Automation.Provider.IDynamicPropertyCmdletProvider pochodzący z interfejsu System.Management.Automation.Provider.IPropertyCmdletProvider, definiuje dostawcę, który określa parametry dynamiczne obsługiwanych poleceń cmdlet. Ten typ dostawcy obsługuje operacje, dla których właściwości można zdefiniować w czasie wykonywania, na przykład nową operację właściwości. Takie operacje nie są możliwe w przypadku elementów ze statycznie zdefiniowanymi właściwościami. W poniższej tabeli wymieniono polecenia cmdlet uwidocznione przez ten interfejs.
| Cmdlet | Definicja |
|---|---|
Copy-ItemProperty |
Kopiuje właściwość z określonego elementu do innego elementu. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
Move-ItemProperty |
Przenosi właściwość z określonego elementu do innego elementu. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
New-ItemProperty |
Tworzy właściwość na określonych elementach i przesyła strumieniowo wynikowe obiekty. |
Remove-ItemProperty |
Usuwa właściwość dla określonych elementów. |
Rename-ItemProperty |
Zmienia nazwę właściwości określonych elementów. To polecenie cmdlet nie przekazuje obiektu wyjściowego przez potok, chyba że określono jego parametr PassThru. |
ISecurityDescriptorCmdletProvider
Interfejs System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider dodaje funkcje deskryptora zabezpieczeń do dostawcy. Ten interfejs umożliwia użytkownikowi pobieranie i ustawianie informacji deskryptora zabezpieczeń dla elementu w magazynie danych. W poniższej tabeli wymieniono polecenia cmdlet uwidocznione przez ten interfejs.
| Cmdlet | Definicja |
|---|---|
Get-Acl |
Pobiera informacje zawarte na liście kontroli dostępu (ACL), która jest częścią deskryptora zabezpieczeń używanego do ochrony zasobów systemu operacyjnego, na przykład pliku lub obiektu. |
Set-Acl |
Ustawia informacje dotyczące listy ACL. Jest to wystąpienie System.Security.AccessControl.ObjectSecurity elementów wyznaczonych dla określonej ścieżki. To polecenie cmdlet może ustawiać informacje o plikach, kluczach i podkluczach w rejestrze lub innym elemencie dostawcy, jeśli dostawca programu Windows PowerShell obsługuje ustawienie informacji zabezpieczających. |
Zobacz też
tworzenie dostawców programu Windows PowerShell
jak działa program Windows PowerShell
zestaw SDK programu Windows PowerShell