Navrhování zprostředkovatele Windows PowerShellu

Pokud váš produkt nebo konfigurace zveřejňuje sadu uložených dat, jako je třeba databáze, kterou bude uživatel chtít procházet nebo procházet, měli byste implementovat poskytovatele prostředí Windows PowerShell. Pokud navíc váš produkt poskytuje kontejner, i když se nejedná o víceúrovňový kontejner, má smysl implementovat poskytovatele prostředí Windows PowerShell. Například můžete chtít implementovat poskytovatele kontejnerů prostředí Windows PowerShell, pokud příkaz kopírování, přesunutí, přejmenování, nové nebo odebrání rutiny dává smysl jako operaci na datech vašeho produktu nebo konfigurace.

Cesty k Windows PowerShellu identifikující poskytovatele

Prostředí Windows PowerShell runtime používá pro přístup k příslušnému poskytovateli Windows PowerShell cesty Windows PowerShellu. Když rutina určí jednu z těchto cest, modul runtime ví, který poskytovatel se má použít pro přístup k přidruženému úložišti dat. Mezi tyto cesty patří cesty, které jsou kvalifikované pro jednotky, cesty k kvalifikovanému poskytovateli, cesty poskytovatele a cíle, a interní cesty poskytovatele. Každý zprostředkovatel 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í Drive-Qualified cesty

Pokud chcete uživateli dovolit přístup k datům umístěným na fyzické jednotce, musí zprostředkovatel Windows PowerShellu podporovat cestu kvalifikovanou na jednotce. Tato cesta začíná názvem jednotky následovaný dvojtečkou (:) například MyDrive: \ abc\bar.

Definování Provider-Qualified cesty

Aby modul runtime prostředí Windows PowerShell mohl inicializovat a odinicializovat poskytovatele, musí zprostředkovatel Windows PowerShell podporovat cestu, která je kvalifikované pro poskytovatele. Například FileSystem:: \ \uncshare\abc\bar je kvalifikovanou cestou zprostředkovatele pro poskytovatele systému souborů poskytnutého prostředím Windows PowerShell.

Definování Provider-Direct cesty

Aby mohl vzdálený přístup k poskytovateli Windows PowerShellu, měl by podporovat přímý odkaz na zprostředkovatele, aby předával přímo poskytovateli Windows PowerShellu pro aktuální umístění. Například zprostředkovatel Windows PowerShellu pro Registry může použít \ \server\regkeypath jako cestu poskytovatele s přímým přístupem.

Definování Provider-Internal cesty

Pokud chcete, aby rutina zprostředkovatele mohla přistupovat k datům pomocí rozhraní API (Application Programming Interface) jiných výrobců než Windows, měl by váš poskytovatel prostředí Windows PowerShell podporovat interní cestu zprostředkovatele. Tato cesta je označena za znakem "::" v cestě kvalifikované poskytovatele. Například poskytovatel – interní cesta pro zprostředkovatele systému souborů Windows PowerShell je \ \uncshare\abc\bar.

Změna uložených dat

Při přepisu metod, které upravují příslušné úložiště dat, vždy volejte metodu System. Management. Automation. Provider. Cmdletprovider. Writeitemobject * s nejaktuálnější verzí položky, kterou tato metoda změnila. Infrastruktura poskytovatele určuje, zda objekt položky musí být předán do kanálu, například když uživatel určí parametr-PassThru. Pokud načítání nejaktuálnější položky je nákladná operace (s možností hodnocení výkonu), můžete otestovat vlastnost Context. PassThru, abyste zjistili, jestli skutečně potřebujete napsat výslednou položku.

Zvolit základní třídu pro poskytovatele

Prostředí Windows PowerShell poskytuje řadu základních tříd, které můžete použít k implementaci vlastního poskytovatele prostředí Windows PowerShell. Při navrhování poskytovatele vyberte základní třídu popsanou v této části, která je nejvíce vhodná pro vaše požadavky.

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

Při použití stavu relace vytvoří modul runtime prostředí Windows PowerShell několik rutin umístění pro některé poskytovatele prostředí Windows PowerShell, například Get-Location Set-Location Pop-Location rutiny,, a Push-Location . Get-HelpK získání informací o těchto rutinách umístění můžete použít rutinu.

Základní třída CmdletProvider

Třída System. Management. Automation. Provider. Cmdletprovider definuje základního poskytovatele prostředí Windows PowerShell. Tato třída podporuje deklaraci poskytovatele a poskytuje celou řadu vlastností a metod, které jsou k dispozici pro všechny poskytovatele prostředí Windows PowerShell. Třída je vyvolána Get-PSProvider rutinou pro výpis všech dostupných zprostředkovatelů pro relaci. Implementace této rutiny je poskytnuta stavem relace.

Poznámka

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

Základní třída DriveCmdletProvider

Třída System. Management. Automation. Provider. Drivecmdletprovider definuje poskytovatele jednotky 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 CD/DVD zařízení.

Tato třída je odvozena od základní třídy System. Management. Automation. Provider. Cmdletprovider . V následující tabulce jsou uvedeny rutiny, které tato třída zveřejňuje. Kromě těch uvedených v seznamu Get-PSDrive je rutina (vystavena stavem relace) související rutinou, která se používá k načtení dostupných jednotek.

Rutina Definice
New-PSDrive Vytvoří novou jednotku pro relaci a informace o jednotce streamování.
Remove-PSDrive Odebere jednotku z relace.

Základní třída ItemCmdletProvider

Třída System. Management. Automation. Provider. Itemcmdletprovider definuje poskytovatele položek Windows PowerShellu, který provádí operace na jednotlivých položkách úložiště dat, a nepředpokládá žádné možnosti kontejneru a navigace. Tato třída je odvozena od základní třídy System. Management. Automation. Provider. Drivecmdletprovider . V následující tabulce jsou uvedeny rutiny, které tato třída zveřejňuje.

Rutina Definice
Clear-Item Vymaže aktuální obsah položek v zadaném umístění a nahradí ho hodnotou "Clear" zadanou zprostředkovatelem. Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho 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í se zadanou hodnotou. Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho parametr.
Resolve-Path Přeloží zástupné znaky pro cestu Windows PowerShellu a informace o cestě k datovým proudům.
Test-Path Testuje zadanou cestu a vrátí, true Pokud existuje, a false jinak. Tato rutina je implementovaná tak, aby podporovala IsContainer parametr pro metodu System. Management. Automation. Provider. Cmdletprovider. Writeitemobject * .

Základní třída ContainerCmdletProvider

Třída System. Management. Automation. Provider. Containercmdletprovider definuje poskytovatele kontejnerů prostředí Windows PowerShell, který zpřístupňuje kontejner pro položky úložiště dat pro uživatele. Počítejte s tím, že zprostředkovatel kontejneru Windows PowerShellu se dá použít jenom v případě, že je v něm jeden kontejner (bez vnořených kontejnerů). Pokud jsou k dispozici vnořené kontejnery, je nutné implementovat poskytovatele navigace v prostředí Windows PowerShell.

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

Rutina Definice
Copy-Item Kopíruje položky z jednoho umístění do druhého. Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho 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 neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho parametr.

Třída System. Management. Automation. Provider. Navigationcmdletprovider definuje poskytovatele navigace v 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 základní třídy System. Management. Automation. Provider. Containercmdletprovider . Následující tabulka uvádí rutiny, které tato třída zveřejňuje.

Rutina Definice
Combine-Path Kombinuje dvě cesty do jediné cesty pomocí oddělovače specifického pro konkrétního poskytovatele mezi cestami. Tato rutina vysílá řetězce.
Move-Item Přesune položky do zadaného umístění. Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho parametr.

Související rutina je základní rutinou Parse-Path, kterou poskytuje Windows PowerShell. Tato rutina se dá použít k analýze cesty Windows PowerShellu pro podporu Parent parametru. Vysílá řetězec nadřazené cesty.

Vyberte rozhraní poskytovatele pro podporu.

Kromě dědění z jedné ze základních tříd prostředí Windows PowerShell může poskytovatel Windows PowerShellu podporovat jiné funkce, a to odvozením z jednoho nebo více následujících rozhraní poskytovatele. Tato část definuje taková rozhraní a rutiny podporované jednotlivými. Nepopisují parametry pro rutiny podporované rozhraním. Informace o parametrech rutiny jsou k dispozici online pomocí Get-Command Get-Help rutin a.

IContentCmdletProvider

Rozhraní System. Management. Automation. Provider. Icontentcmdletprovider definuje poskytovatele obsahu, který provádí operace s obsahem datové položky. Následující tabulka uvádí rutiny, které jsou vystavené tímto rozhraním.

Rutina Definice
Add-Content Připojí k obsahu zadané položky délky označené hodnoty. Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho parametr.
Clear-Content Nastaví obsah zadané položky na hodnotu "Clear". Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho 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 neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho parametr.

IPropertyCmdletProvider

rozhraní System. Management. Automation. Provider. Ipropertycmdletprovider definuje vlastnost Windows PowerShell zprostředkovatele, který provádí operace s vlastnostmi položek v úložišti dat. Následující tabulka uvádí rutiny, které jsou vystavené tímto rozhraním.

Poznámka

PathParametr u těchto rutin označuje cestu k položce namísto identifikace vlastnosti.

Rutina Definice
Clear-ItemProperty Nastaví vlastnosti zadaných položek na hodnotu "Clear". Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho 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 uvedenými hodnotami. Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho parametr.

IDynamicPropertyCmdletProvider

Rozhraní System. Management. Automation. Provider. Idynamicpropertycmdletprovider , které je odvozeno od třídy System. Management. Automation. Provider. Ipropertycmdletprovider, definuje poskytovatele, který určuje dynamické parametry pro své podporované rutiny. Tento typ zprostředkovatele zpracovává operace, pro které lze definovat vlastnosti v době běhu, například operace New Property. Tyto operace nejsou možné u položek, které mají staticky definované vlastnosti. Následující tabulka uvádí rutiny, které jsou vystavené tímto rozhraním.

Rutina Definice
Copy-ItemProperty Zkopíruje vlastnost ze zadané položky do jiné položky. Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho parametr.
Move-ItemProperty Přesune vlastnost ze zadané položky na jinou položku. Tato rutina neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho 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 neprojde výstupní objekt kanálem, pokud PassThru není zadán jeho parametr.

ISecurityDescriptorCmdletProvider

Rozhraní System. Management. Automation. Provider. Isecuritydescriptorcmdletprovider přidává funkci popisovače zabezpečení 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, které jsou vystavené tímto rozhraním.

Rutina 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 pro ochranu prostředků operačního systému, například souboru nebo objektu.
Set-Acl Nastaví informace pro seznam ACL. Má formu 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 libovolné jiné položce poskytovatele, pokud poskytovatel Windows PowerShell podporuje nastavení informací o zabezpečení.

Viz také

vytváření zprostředkovatelů Windows PowerShell

jak Windows PowerShell funguje

Sada SDK Windows PowerShellu