Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud váš produkt nebo konfigurace zpřístupňuje sadu uložených dat, například databázi, kterou chce uživatel procházet nebo prohlížet, byste měli implementovat poskytovatele Windows PowerShell. Navíc, pokud váš produkt poskytuje kontejner, i když není víceúrovňový kontejner, dává smysl implementovat poskytovatele Windows PowerShell. Například můžete chtít implementovat poskytovatele kontejnerů Windows PowerShell, pokud dává smysl sloveso Copy, Move, Rename, New nebo Remove jako operace na vašem produktu nebo konfiguračních datech.
Windows PowerShell cesty identifikují vašeho poskytovatele
Runtime Windows PowerShell používá cesty Windows PowerShell k přístupu k příslušnému poskytovateli Windows PowerShell. Když cmdlet specifikuje jednu z těchto cest, runtime ví, kterého poskytovatele použít k přístupu k příslušnému datovému úložišti. Tyto cesty zahrnují cesty kvalifikované podle disku, cesty kvalifikované poskytovatelem, přímé cesty poskytovatele a interní cesty poskytovatele. Každý poskytovatel Windows PowerShell musí podporovat jednu nebo více z těchto cest.
Pro více informací o cestách Windows PowerShell viz Jak funguje Windows PowerShell.
Definování Drive-Qualified cesty
Aby uživatel mohl přistupovat k datům umístěným na fyzickém disku, musí váš poskytovatel Windows PowerShell podporovat cestu kvalifikovanou na disku. Tato cesta začíná názvem disku následovaným dvojtečkou (:), například mydrive:\abc\bar.
Definování Provider-Qualified cesty
Aby runtime Windows PowerShell mohl inicializovat a odinicializovat poskytovatele, musí váš poskytovatel Windows PowerShell podporovat cestu kvalifikovanou pro poskytovatele. Například FileSystem::\\uncshare\abc\bar je cesta kvalifikovaná poskytovatelem pro poskytovatele souborových systémů poskytovaná Windows PowerShell.
Definování Provider-Direct cesty
Aby bylo možné vzdáleně přistupovat k vašemu poskytovateli Windows PowerShell, mělo by podporovat přímou cestu poskytovatele, která se předává přímo poskytovateli Windows PowerShell pro aktuální lokalitu. Například poskytovatel Windows PowerShell v registru může použít \\server\regkeypath jako přímou cestu k poskytovateli.
Definování Provider-Internal cesty
Aby poskytovatelský cmdlet mohl přistupovat k datům pomocí programovacích rozhraní (API), který není Windows PowerShell, měl by váš poskytovatel Windows PowerShell podporovat interní cestu poskytovatele. Tato cesta je označena za "::" v cestě kvalifikované pro poskytovatele. Například interní cesta poskytovatele pro poskytovatele souborového systému Windows PowerShell je \\uncshare\abc\bar.
Změna uložených dat
Při přepisování metod, které upravují základní datové úložiště, vždy volejte metodu System.Management.Automation.Provider.CmdletProvider.WriteItemObject* s nejaktuálnější verzí položky změněnup-toou touto metodou. Infrastruktura poskytovatele určuje, zda je potřeba objekt položky předat do pipeline, například když uživatel zadá parametr -PassThru. Pokud je získání položky s největším up-to-data nákladná operace (z hlediska výkonu), můžete otestovat vlastnost Context.PassThru, abyste zjistili, zda je skutečně potřeba výslednou položku zapsat.
Vyberte si základní třídu pro svého poskytovatele
Windows PowerShell poskytuje řadu základních tříd, které můžete použít k implementaci vlastního poskytovatele Windows PowerShell. Při navrhování poskytovatele zvolte základní třídu, popsanou v této části, která nejlépe odpovídá vašim požadavkům.
Každá základní třída poskytovatele Windows PowerShell zpřístupňuje sadu cmdletů. Tato sekce popisuje cmdlety, ale nepopisuje jejich parametry.
Pomocí stavu relace zpřístupňuje runtime Windows PowerShell několik lokalizačních cmdletů určitým poskytovatelům Windows PowerShell, jako jsou Get-Location, Set-Location, Pop-Location, a Push-Location cmdlety. Pomocí cmdletu můžete Get-Help získat informace o těchto lokačních cmdletech.
Základní třída CmdletProvider
Třída System.Management.Automation.Provider.CmdletProvider definuje základního poskytovatele Windows PowerShell. Tato třída podporuje deklaraci poskytovatelů a poskytuje řadu vlastností a metod, které jsou dostupné všem poskytovatelům Windows PowerShell.
Třída je vyvolána Get-PSProvider příkazovým příkazem k vyvedení všech dostupných poskytovatelů pro danou relaci.
Implementace tohoto cmdletu je poskytována stavem relace.
Poznámka:
Poskytovatelé Windows PowerShell jsou dostupní pro všechny jazykové rozsahy Windows PowerShell.
DriveCmdletProvider Base Class
Třída System.Management.Automation.Provider.DriveCmdletProvider definuje poskytovatele disků Windows PowerShell, který podporuje operace pro přidávání nových disků, odstraňování stávajících disků a inicializaci výchozích disků. Například poskytovatel souborových systémů poskytovaný Windows PowerShell inicializuje mechaniky všech připojených svazků, jako jsou pevné disky a CD/DVD jednotky.
Tato třída vychází ze základní třídy System.Management.Automation.Provider.CmdletProvider . Následující tabulka uvádí cmdlety vystavené touto třídou. Kromě těchto jmen je Get-PSDrive cmdlet (exposed by session state) příbuzný cmdlet, který slouží k načtení dostupných disků.
| Cmdlet | Definition |
|---|---|
New-PSDrive |
Vytvoří nový disk pro relaci a streamuje informace o disku. |
Remove-PSDrive |
Odebere disk ze relace. |
ItemCmdletProvider Base Class
Třída System.Management.Automation.Provider.ItemCmdletProvider definuje poskytovatele položek Windows PowerShell, který provádí operace na jednotlivých položkách datového úložiště a nepředpokládá žádné schopnosti kontejneru ani navigace. Tato třída vychází ze základní třídy System.Management.Automation.Provider.DriveCmdletProvider . Následující tabulka uvádí cmdlety vystavené touto třídou.
| Cmdlet | Definition |
|---|---|
Clear-Item |
Vymaže aktuální obsah položek na určeném místě a nahrazuje jej hodnotou "clear" stanovenou poskytovatelem. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
Get-Item |
Získá položky z určeného místa a streamuje výsledné objekty. |
Invoke-Item |
Vyvolá výchozí akci pro položku na určené cestě. |
Set-Item |
Nastaví položku na určené místo s uvedenou hodnotou. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
Resolve-Path |
Vyřeší žolíky pro cestu Windows PowerShell a streamuje informace o cestě. |
Test-Path |
Testuje zadanou cestu a vrací true , pokud existuje, a false pokud ne. Tento cmdlet je implementován tak, aby podporoval IsContainer parametr pro metodu System.Management.Automation.Provider.CmdletProvider.WriteItemObject* . |
ContainerCmdletProvider Base Class
Třída System.Management.Automation.Provider.ContainerCmdletProvider definuje poskytovatele kontejnerů Windows PowerShell, který uživateli zpřístupňuje kontejner pro položky datového úložiště. Mějte na paměti, že poskytovatel kontejnerů Windows PowerShell lze použít pouze tehdy, když je jeden kontejner (žádné vnořené kontejnery) s položkami. Pokud jsou kontejnery vnořené, musíte implementovat navigačního poskytovatele Windows PowerShell.
Tato třída vychází ze základní třídy System.Management.Automation.Provider.ItemCmdletProvider . Následující tabulka definuje cmdlety implementované touto třídou.
| Cmdlet | Definition |
|---|---|
Copy-Item |
Kopíruje položky z jednoho místa na druhé. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
Get-ChildItem |
Vyhledává podpoložky na určeném místě a streamuje je jako objekty. |
New-Item |
Vytvoří nové položky na určeném místě a výsledný objekt streamuje. |
Remove-Item |
Odstraní předměty z určeného místa. |
Rename-Item |
Přejmenuje položku na určeném místě. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
Navigační CmdletProvider základní třída
Třída System.Management.Automation.Provider.NavigationCmdletProvider definuje poskytovatele navigace ve Windows PowerShell, který provádí operace pro položky využívající více než jeden kontejner. Tato třída vychází ze základní třídy System.Management.Automation.Provider.ContainerCmdletProvider . Následující tabulka uvádí cmdlety vystavené touto třídou.
| Cmdlet | Definition |
|---|---|
Combine-Path |
Kombinuje dvě cesty do jedné cesty, přičemž mezi cestami se používá oddělovač specifický pro poskytovatele. Tento cmdlet streamuje struny. |
Move-Item |
Přesouvá předměty na určené místo. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
Související cmdlet je základní Parse-Path cmdlet poskytovaný Windows PowerShell. Tento cmdlet lze použít k analýze cesty Windows PowerShell pro podporu parametru Parent . Streamuje rodičovský řetězec cesty.
Vyberte rozhraní poskytovatele pro podporu
Kromě odvození z jedné ze základních tříd Windows PowerShell může váš poskytovatel Windows PowerShell podporovat i další funkce odvozením z jednoho nebo více z následujících rozhraní poskytovatele. Tato sekce definuje tato rozhraní a cmdlety podporované každým z nich. Nepopisuje parametry pro cmdlety podporované rozhraním. Informace o parametrech cmdletu jsou dostupné online pomocí Get-CommandGet-Help a cmdletů.
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í cmdlety dostupné tímto rozhraním.
| Cmdlet | Definition |
|---|---|
Add-Content |
Přidává uvedené délky hodnot k obsahu zadané položky. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
Clear-Content |
Nastaví obsah specifikované položky na hodnotu "clear". Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
Get-Content |
Získá obsah specifikovaných položek a streamuje výsledné objekty. |
Set-Content |
Nahrazuje stávající obsah za určené předměty. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
IPropertyCmdletProvider
Rozhraní System.Management.Automation.Provider.IPropertyCmdletProvider definuje vlastnost Windows PowerShell provider, který provádí operace s vlastnostmi položek v datovém úložišti. Následující tabulka uvádí cmdlety dostupné tímto rozhraním.
Poznámka:
Parametr na těchto cmdletech označuje Path cestu k položce místo identifikace vlastnosti.
| Cmdlet | Definition |
|---|---|
Clear-ItemProperty |
Nastavuje vlastnosti specifikovaných položek na hodnotu "clear". Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
Get-ItemProperty |
Získá vlastnosti ze specifikovaných prvků a streamuje výsledné objekty. |
Set-ItemProperty |
Nastavuje vlastnosti specifikovaných položek s uvedenými hodnotami. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
IDynamicPropertyCmdletProvider
Rozhraní System.Management.Automation.Provider.IDynamicPropertyCmdletProvider , odvozené ze System.Management.Automation.Provider.IPropertyCmdletProvider, definuje poskytovatele, který specifikuje dynamické parametry pro podporované cmdlety. Tento typ poskytovatele zpracovává operace, pro které lze vlastnosti definovat za běhu, například novou operaci vlastností. Takové operace nejsou možné na položkách se staticky definovanými vlastnostmi. Následující tabulka uvádí cmdlety dostupné tímto rozhraním.
| Cmdlet | Definition |
|---|---|
Copy-ItemProperty |
Kopíruje vlastnost ze specifikované položky na jinou položku. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
Move-ItemProperty |
Přesouvá vlastnost z dané položky na jinou. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
New-ItemProperty |
Vytvoří vlastnost na specifikovaných položkách a streamuje výsledné objekty. |
Remove-ItemProperty |
Odstraní vlastnost pro specifikované položky. |
Rename-ItemProperty |
Přejmenuje vlastnost specifikovaných položek. Tento cmdlet nepředává výstupní objekt pipeline, pokud není jeho PassThru parametr specifikován. |
ISecurityDescriptorCmdletProvider
Rozhraní System.Management.Automation.Provider.ISecurityDescriptorCmdletProvider přidává poskytovateli funkce bezpečnostních deskriptorů. Toto rozhraní umožňuje uživateli získat a nastavit informace o bezpečnostních deskriptorech pro položku v datovém úložišti. Následující tabulka uvádí cmdlety dostupné tímto rozhraním.
| Cmdlet | Definition |
|---|---|
Get-Acl |
Získává informace obsažené v seznamu řízení přístupu (ACL), což je součást bezpečnostního deskriptoru používaného k ochraně zdrojů operačního systému, například souboru nebo objektu. |
Set-Acl |
Nastavuje informace pro ACL. Je to instance System.Security.AccessControl.ObjectSecurity na položce určené pro danou cestu. Tento cmdlet může nastavit informace o souborech, klíčích a podklíčích v registru nebo v jakémkoli jiném položce poskytovatele, pokud poskytovatel Windows PowerShell podporuje nastavení bezpečnostních informací. |
Viz také
Vytváření poskytovatelů Windows PowerShell