Sdílet prostřednictvím


Návrh zprostředkovatele Windows PowerShellu

Poskytovatele Windows PowerShellu byste měli implementovat, pokud váš produkt nebo konfigurace zpřístupňuje sadu uložených dat, například databázi, kterou bude uživatel chtít procházet nebo procházet. Pokud váš produkt navíc poskytuje kontejner, i když není víceúrovňovým kontejnerem, dává smysl implementovat zprostředkovatele Windows PowerShellu. Pokud například rutina Copy, Move, Rename, New nebo Remove dává smysl jako operace s produktem nebo konfiguračními daty implementovat zprostředkovatele kontejneru Windows PowerShellu.

Cesty Windows PowerShellu – Identifikace zprostředkovatele

Modul runtime Prostředí Windows PowerShell používá cesty prostředí Windows PowerShell pro přístup k příslušnému poskytovateli prostředí Windows PowerShell. Když rutina určuje jednu z těchto cest, modul runtime ví, který zprostředkovatel má použít pro přístup k přidruženému úložišti dat. Mezi tyto cesty patří cesty kvalifikované pro jednotky, cesty kvalifikované zprostředkovatelem, cesty přímé zprostředkovatele a interní cesty zprostředkovatele. Každý poskytovatel Windows PowerShellu musí podporovat jednu nebo více těchto cest.

Další informace o cestách Windows PowerShellu najdete v tématu Jak funguje Windows PowerShell.

Definování cesty Drive-Qualified

Aby mohl uživatel přistupovat k datům umístěným na fyzické jednotce, musí poskytovatel Windows PowerShellu podporovat cestu kvalifikovanou k jednotce. Tato cesta začíná názvem jednotky, za kterou následuje dvojtečka (:), například mydrive:\abc\bar.

Definování cesty Provider-Qualified

Aby modul runtime Windows PowerShellu inicializoval a neinicializoval zprostředkovatele, musí poskytovatel Windows PowerShellu podporovat cestu s oprávněním zprostředkovatele. Například FileSystem::\\uncshare\abc\bar je cesta zprostředkovatele pro zprostředkovatele fileSystem, který je zařízený prostředím Windows PowerShell.

Definování cesty Provider-Direct

Pokud chcete povolit vzdálený přístup k vašemu poskytovateli Windows PowerShellu, měl by podporovat přímou cestu zprostředkovatele, která se má předat přímo zprostředkovateli Windows PowerShellu pro aktuální umístění. Například poskytovatel Windows PowerShellu registru může jako přímou cestu poskytovatele použít \\server\regkeypath.

Definování cesty Provider-Internal

Aby mohla rutina zprostředkovatele přistupovat k datům pomocí aplikačních rozhraní (API) jiného než Windows PowerShellu, měl by váš poskytovatel Prostředí Windows PowerShell podporovat interní cestu zprostředkovatele. Tato cesta je označena za ::v cestě kvalifikované poskytovatelem. Například interní cesta zprostředkovatele pro zprostředkovatele Windows PowerShell systému souborů je \\uncshare\abc\bar.

Změna uložených dat

Při přepsání metod, které upravují podkladové úložiště dat, vždy volejte System.Management.Automation.Provider.CmdletProvider.WriteItemObject* metoda s nejvíce up-to-date verze položky změněnou danou metodou. Infrastruktura poskytovatele určuje, jestli se objekt položky musí předat kanálu, například když uživatel určí parametr -PassThru. Pokud načítání nejvíce up-to-date položka je nákladná operace (výkon-moudrý,) můžete otestovat Context.PassThru vlastnost určit, jestli skutečně potřebujete napsat výslednou položku.

Volba základní třídy pro vašeho poskytovatele

Windows PowerShell poskytuje řadu základních tříd, které můžete použít k implementaci vlastního poskytovatele Windows PowerShellu. Při navrhování zprostředkovatele zvolte základní třídu popsanou v této části, která je nejvhodnější pro vaše požadavky.

Každá základní třída zprostředkovatele Windows PowerShellu zpřístupňuje sadu rutin. Tato část popisuje rutiny, ale nepopisuje jejich parametry.

Modul runtime Prostředí Windows PowerShell pomocí stavu relace zpřístupňuje několik rutin umístění určitým poskytovatelům prostředí Windows PowerShell, jako jsou rutiny Get-Location, Set-Location, Pop-Locationa Push-Location. K získání informací o těchto rutinách umístění můžete použít rutinu Get-Help.

CmdletProvider – základní třída

Třída System.Management.Automation.Provider.CmdletProvider definuje základního zprostředkovatele Windows PowerShellu. Tato třída podporuje deklaraci zprostředkovatele a poskytuje řadu vlastností a metod, které jsou k dispozici pro všechny zprostředkovatele Windows PowerShellu. Třída je vyvolána rutinou Get-PSProvider, která zobrazí seznam všech dostupných poskytovatelů relace. Implementace této rutiny je zařízena stavem relace.

Poznámka:

Zprostředkovatelé Prostředí Windows PowerShell jsou k dispozici pro všechny obory jazyka Windows PowerShell.

DriveCmdletProvider – základní třída

Třída System.Management.Automation.Provider.DriveCmdletProvider definuje poskytovatele jednotek Prostředí Windows PowerShell, který podporuje operace pro přidávání nových jednotek, odebírání existujících jednotek a inicializaci výchozích jednotek. Například poskytovatel systému souborů poskytovaný prostředím Windows PowerShell inicializuje jednotky pro všechny připojené svazky, jako jsou pevné disky a jednotky zařízení CD/DVD.

Tato třída je odvozena od System.Management.Automation.Provider.CmdletProvider základní třídy. Následující tabulka uvádí rutiny vystavené touto třídou. Kromě uvedených rutin je rutina Get-PSDrive (vystavená stavem relace) související rutinou, která slouží k načtení dostupných jednotek.

cmdlet Definice
New-PSDrive Vytvoří novou jednotku pro relaci a streamuje informace o jednotce.
Remove-PSDrive Odebere jednotku z relace.

ItemCmdletProvider – základní třída

Třída System.Management.Automation.Provider.ItemCmdletProvider definuje zprostředkovatele položek Prostředí Windows PowerShell, který provádí operace s jednotlivými položkami úložiště dat a nepředpokládá žádné možnosti kontejneru ani navigace. Tato třída je odvozena z System.Management.Automation.Provider.DriveCmdletProvider základní třídy. Následující tabulka uvádí rutiny vystavené touto třídou.

cmdlet Definice
Clear-Item Vymaže aktuální obsah položek v zadaném umístění a nahradí ho hodnotou "clear" určenou poskytovatelem. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.
Get-Item Načte položky ze zadaného umístění a streamuje výsledné objekty.
Invoke-Item Vyvolá výchozí akci pro položku v zadané cestě.
Set-Item Nastaví položku v zadaném umístění s uvedenou hodnotou. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.
Resolve-Path Řeší zástupné cardy pro cestu Windows PowerShellu a streamuje informace o cestě.
Test-Path Otestuje zadanou cestu a vrátí true, pokud existuje, a false jinak. Tato rutina je implementována tak, aby podporovala parametr IsContainer pro System.Management.Automation.Provider.CmdletProvider.WriteItemObject* metoda.

ContainerCmdletProvider – základní třída

Třída System.Management.Automation.Provider.ContainerCmdletProvider definuje zprostředkovatele kontejneru Windows PowerShellu, který zveřejňuje kontejner pro položky úložiště dat pro uživatele. Mějte na paměti, že zprostředkovatel kontejneru Windows PowerShellu lze použít pouze v případě, že existuje jeden kontejner (žádné vnořené kontejnery) s položkami v něm. Pokud existují vnořené kontejnery, musíte implementovat zprostředkovatele navigace prostředí Windows PowerShell .

Tato třída je odvozena z System.Management.Automation.Provider.ItemCmdletProvider základní třídy. Následující tabulka definuje rutiny implementované touto třídou.

cmdlet Definice
Copy-Item Zkopíruje položky z jednoho umístění do jiného. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.
Get-ChildItem Načte podřízené položky v zadaném umístění a streamuje je jako objekty.
New-Item Vytvoří nové položky v zadaném umístění a streamuje výsledný objekt.
Remove-Item Odebere položky ze zadaného umístění.
Rename-Item Přejmenuje položku v zadaném umístění. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.

Třída System.Management.Automation.Provider.NavigationCmdletProvider definuje zprostředkovatele navigace prostředí Windows PowerShell, který provádí operace pro položky, které používají více než jeden kontejner. Tato třída je odvozena od System.Management.Automation.Provider.ContainerCmdletProvider základní třídy. Následující tabulka uvádí rutiny vystavené touto třídou.

cmdlet Definice
Combine-Path Kombinuje dvě cesty do jedné cesty pomocí oddělovače specifického pro zprostředkovatele mezi cestami. Tato rutina streamuje řetězce.
Move-Item Přesune položky do zadaného umístění. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.

Související rutina je základní Parse-Path rutina zařízená prostředím Windows PowerShell. Tuto rutinu můžete použít k analýze cesty prostředí Windows PowerShell pro podporu parametru Parent. Streamuje nadřazený řetězec cesty.

Vyberte rozhraní zprostředkovatele, která chcete podporovat.

Kromě odvození jedné ze základních tříd Windows PowerShellu může poskytovatel Windows PowerShellu podporovat další funkce odvozením z jednoho nebo několika následujících rozhraní zprostředkovatele. Tato část definuje tato rozhraní a rutiny podporované jednotlivými rutinami. Nepopisuje parametry pro rutiny podporované rozhraním. Informace o parametrech rutin jsou k dispozici online pomocí rutin Get-Command a Get-Help.

IContentCmdletProvider

Rozhraní System.Management.Automation.Provider.IContentCmdletProvider definuje zprostředkovatele obsahu, který provádí operace s obsahem datové položky. Následující tabulka uvádí rutiny zveřejněné tímto rozhraním.

cmdlet Definice
Add-Content Připojí k obsahu zadané položky uvedené délky hodnot. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.
Clear-Content Nastaví obsah zadané položky na hodnotu "clear". Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.
Get-Content Načte obsah zadaných položek a streamuje výsledné objekty.
Set-Content Nahradí existující obsah pro zadané položky. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.

IPropertyCmdletProvider

Rozhraní System.Management.Automation.Provider.IPropertyCmdletProvider definuje vlastnost, která provádí operace s vlastnostmi položek v úložišti dat. Následující tabulka uvádí rutiny zveřejněné tímto rozhraním.

Poznámka:

Parametr Path v těchto rutinách označuje cestu k položce místo identifikace vlastnosti.

cmdlet Definice
Clear-ItemProperty Nastaví vlastnosti zadaných položek na hodnotu "clear". Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.
Get-ItemProperty Načte vlastnosti ze zadaných položek a streamuje výsledné objekty.
Set-ItemProperty Nastaví vlastnosti zadaných položek s vyznačenými hodnotami. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.

IDynamicPropertyCmdletProvider

Rozhraní System.Management.Automation.Provider.IDynamicPropertyCmdletProvider odvozené od System.Management.Automation.Provider.IPropertyCmdletProvider, definuje zprostředkovatele, který určuje dynamické parametry pro podporované rutiny. Tento typ zprostředkovatele zpracovává operace, pro které lze vlastnosti definovat za běhu, například novou operaci vlastnosti. Tyto operace nejsou možné u položek, které mají staticky definované vlastnosti. Následující tabulka uvádí rutiny zveřejněné tímto rozhraním.

cmdlet Definice
Copy-ItemProperty Zkopíruje vlastnost ze zadané položky do jiné položky. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.
Move-ItemProperty Přesune vlastnost ze zadané položky do jiné položky. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.
New-ItemProperty Vytvoří vlastnost pro zadané položky a streamuje výsledné objekty.
Remove-ItemProperty Odebere vlastnost pro zadané položky.
Rename-ItemProperty Přejmenuje vlastnost zadaných položek. Tato rutina neprovádí výstupní objekt kanálem, pokud není zadán jeho PassThru parametr.

ISecurityDescriptorCmdletProvider

Rozhraní System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider přidává funkci popisovače zabezpečení k poskytovateli. Toto rozhraní umožňuje uživateli získat a nastavit informace popisovače zabezpečení pro položku v úložišti dat. Následující tabulka uvádí rutiny zveřejněné tímto rozhraním.

cmdlet Definice
Get-Acl Načte informace obsažené v seznamu řízení přístupu (ACL), který je součástí popisovače zabezpečení používaného k ochranu prostředků operačního systému, například souboru nebo objektu.
Set-Acl Nastaví informace pro seznam ACL. Je ve formě instance System.Security.AccessControl.ObjectSecurity u položek určených pro zadanou cestu. Tato rutina může nastavit informace o souborech, klíčích a podklíčích v registru nebo jakékoli jiné položce zprostředkovatele, pokud poskytovatel Windows PowerShellu podporuje nastavení informací o zabezpečení.

Viz také

vytváření zprostředkovatelů Windows PowerShellu

jak funguje windows PowerShell

windows PowerShell SDK