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-Help
K 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. |
Základní třída NavigationCmdletProvider
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
Path
Parametr 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
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro