Uw Windows PowerShell-provider ontwerpen

U moet een Windows PowerShell-provider implementeren als uw product of configuratie een set opgeslagen gegevens beschikbaar maakt, zoals een database waarin de gebruiker kan navigeren of bladeren. Als uw product bovendien een container biedt, zelfs als het geen container met meerdere niveaus is, is het zinvol om een Windows PowerShell implementeren. U kunt bijvoorbeeld een Windows PowerShell-containerprovider implementeren als de cmdlet-bewerking Kopiëren, Verplaatsen, Naam wijzigen, Nieuw of Verwijderen zinvol is als bewerking op uw product- of configuratiegegevens.

Windows PowerShell Paden identificeren uw provider

De Windows PowerShell runtime gebruikt Windows PowerShell paden om toegang te krijgen tot de juiste Windows PowerShell provider. Wanneer een cmdlet een van deze paden specificeert, weet de runtime welke provider moet worden gebruikt voor toegang tot het bijbehorende gegevensopslag. Deze paden omvatten paden met een gekwalificeerde schijf, door de provider gekwalificeerde paden, provider-directe paden en provider-interne paden. Elke Windows PowerShell provider moet een of meer van deze paden ondersteunen.

Zie Hoe Windows PowerShell werkt voor meer informatie over Windows PowerShell Windows PowerShell paden.

Een Drive-Qualified definiëren

Als u wilt toestaan dat de gebruiker toegang heeft tot gegevens op een fysiek station, moet uw Windows PowerShell-provider een pad met een gekwalificeerde schijf ondersteunen. Dit pad begint met de naam van het station gevolgd door een dubbele punt (:), bijvoorbeeld mydrive:\abc\bar.

Een Provider-Qualified definiëren

Als u de Windows PowerShell runtime wilt toestaan om de provider te initialiseren en uninitialiseren, moet uw Windows PowerShell-provider een door de provider gekwalificeerd pad ondersteunen. FileSystem:: \uncshare\abc\bar is bijvoorbeeld het pad dat door de provider is gekwalificeerd voor de bestandssysteemprovider die door de \ Windows PowerShell.

Een Provider-Direct definiëren

Om externe toegang tot uw Windows PowerShell-provider toe te staan, moet deze een provider-direct pad ondersteunen om rechtstreeks door te geven aan de Windows PowerShell provider voor de huidige locatie. De register-Windows PowerShell provider kan \ bijvoorbeeld \server\regkeypath gebruiken als een provider-direct pad.

Een Provider-Internal definiëren

Om de provider-cmdlet toegang te geven tot gegevens met behulp van niet-Windows PowerShell Application Programming Interfaces (API's), moet uw Windows PowerShell-provider een provider-intern pad ondersteunen. Dit pad wordt aangegeven na de '::' in het pad dat door de provider is gekwalificeerd. Het interne pad van de provider voor het bestandssysteem Windows PowerShell provider is \ bijvoorbeeld \uncshare\abc\bar.

Opgeslagen gegevens wijzigen

Bij het overschrijven van methoden waarmee het onderliggende gegevensopslag wordt gewijzigd, roept u altijd de methode System.Management.Automation.Provider.Cmdletprovider.Writeitemobject* aan met de meest recente versie van het item dat met die methode is gewijzigd. De providerinfrastructuur bepaalt of het itemobject moet worden doorgegeven aan de pijplijn, bijvoorbeeld wanneer de gebruiker de parameter -PassThru opgeeft. Als het ophalen van het meest recente item een kostbare bewerking is (op prestatieniveau), kunt u de eigenschap Context.PassThru testen om te bepalen of u het resulterende item daadwerkelijk moet schrijven.

Een basisklasse kiezen voor uw provider

Windows PowerShell biedt een aantal basisklassen die u kunt gebruiken om uw eigen Windows PowerShell implementeren. Kies bij het ontwerpen van een provider de basisklasse die in deze sectie wordt beschreven en die het meest geschikt is voor uw vereisten.

Elke Windows PowerShell-providerbasisklasse maakt een set cmdlets beschikbaar. In deze sectie worden de cmdlets beschreven, maar de parameters worden niet beschreven.

Met behulp van de sessietoestand maakt de Windows PowerShell-runtime verschillende locatie-cmdlets beschikbaar voor bepaalde Windows PowerShell-providers, zoals Get-Location de Set-Location Pop-Location cmdlets , , en Push-Location . U kunt de Get-Help cmdlet gebruiken om informatie over deze locatie-cmdlets te verkrijgen.

CmdletProvider-basisklasse

De klasse System.Management.Automation.Provider.Cmdletprovider definieert een Windows PowerShell provider. Deze klasse ondersteunt de providerdeclaratie en levert een aantal eigenschappen en methoden die beschikbaar zijn voor alle Windows PowerShell providers. De klasse wordt aangeroepen door de Get-PSProvider cmdlet om alle beschikbare providers voor een sessie weer te geven. De implementatie van deze cmdlet wordt veroorzaakt door de sessietoestand.

Notitie

Windows PowerShell zijn beschikbaar voor alle Windows PowerShell taalbereiken.

Basisklasse DriveCmdletProvider

De klasse System.Management.Automation.Provider.Drivecmdletprovider definieert een Windows PowerShell-stationsprovider die bewerkingen ondersteunt voor het toevoegen van nieuwe stations, het verwijderen van bestaande stations en het initialiseren van standaardstations. De FileSystem-provider die wordt geleverd door Windows PowerShell initialiseert stations voor alle volumes die zijn bevestigd, zoals harde schijven en cd/dvd-apparaatstations.

Deze klasse is afgeleid van de basisklasse System.Management.Automation.Provider.Cmdletprovider. De volgende tabel bevat de cmdlets die door deze klasse worden blootgesteld. Naast de vermelde cmdlet (weergegeven door sessietoestand) is een gerelateerde cmdlet die wordt gebruikt voor het ophalen Get-PSDrive van beschikbare stations.

Cmdlet Definitie
New-PSDrive Hiermee maakt u een nieuw station voor de sessie en streamt u informatie over het station.
Remove-PSDrive Hiermee verwijdert u een station uit de sessie.

ItemCmdletProvider-basisklasse

De klasse System.Management.Automation.Provider.Itemcmdletprovider definieert een Windows PowerShell-itemprovider die bewerkingen uitvoert op de afzonderlijke items van het gegevensopslag. Hierbij wordt geen container- of navigatiemogelijkheden aangenomen. Deze klasse is afgeleid van de basisklasse System.Management.Automation.Provider.Drivecmdletprovider. De volgende tabel bevat de cmdlets die door deze klasse worden blootgesteld.

Cmdlet Definitie
Clear-Item Hiermee wordt de huidige inhoud van items op de opgegeven locatie geweerd en vervangen door de 'duidelijke' waarde die is opgegeven door de provider. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.
Get-Item Hiermee worden items opgehaald van de opgegeven locatie en worden de resultaatobjecten gestreamd.
Invoke-Item Roept de standaardactie voor het item aan op het opgegeven pad.
Set-Item Hiermee stelt u een item op de opgegeven locatie met de aangegeven waarde. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.
Resolve-Path De jokertekens voor een Windows PowerShell pad en stromen padgegevens.
Test-Path Tests voor het opgegeven pad en retourneert true als het bestaat en false anders. Deze cmdlet is geïmplementeerd ter ondersteuning van de parameter voor de IsContainer methode System.Management.Automation.Provider.Cmdletprovider.Writeitemobject*.

Basisklasse ContainerCmdletProvider

De klasse System.Management.Automation.Provider.Containercmdletprovider definieert een Windows PowerShell-containerprovider die een container voor gegevensopslagitems beschikbaar maakt voor de gebruiker. Let erop dat een Windows PowerShell containerprovider alleen kan worden gebruikt wanneer er één container (geen geneste containers) met items in staat. Als er geneste containers zijn, moet u een Windows PowerShell implementeren.

Deze klasse is afgeleid van de basisklasse System.Management.Automation.Provider.Itemcmdletprovider. De volgende tabel definieert de cmdlets die door deze klasse worden geïmplementeerd.

Cmdlet Definitie
Copy-Item Kopieert items van de ene locatie naar de andere. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.
Get-Childitem Haalt de onderliggende items op de opgegeven locatie op en streamt ze als objecten.
New-Item Maakt nieuwe items op de opgegeven locatie en streamt het resultaatobject.
Remove-Item Hiermee verwijdert u items van de opgegeven locatie.
Rename-Item Hiermee wijzigt u de naam van een item op de opgegeven locatie. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.

De klasse System.Management.Automation.Provider.Navigationcmdletprovider definieert een Windows PowerShell-navigatieprovider die bewerkingen uitvoert voor items die meer dan één container gebruiken. Deze klasse is afgeleid van de basisklasse System.Management.Automation.Provider.Containercmdletprovider. De volgende tabel vermeldt de cmdlets die door deze klasse worden weergegeven.

Cmdlet Definitie
Combine-Path Combineert twee paden in één pad, met behulp van een provider-specifiek scheidingsteken tussen paden. Met deze cmdlet worden tekenreeksen gestreamd.
Move-Item Verplaatst items naar de opgegeven locatie. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.

Een gerelateerde cmdlet is de basis-Parse-Path cmdlet die door de Windows PowerShell. Deze cmdlet kan worden gebruikt voor het parseren van een Windows PowerShell voor de ondersteuning van de Parent parameter. De bovenliggende padreeks wordt gestreamd.

Providerinterfaces selecteren die moeten worden ondersteund

Naast het afgeleid zijn van een van de Windows PowerShell-basisklassen, kan uw Windows PowerShell-provider andere functionaliteit ondersteunen door af te maken van een of meer van de volgende providerinterfaces. Deze sectie definieert de interfaces en de cmdlets die door elk van deze interfaces worden ondersteund. De parameters voor de door de interface ondersteunde cmdlets worden niet beschreven. Informatie over cmdlet-parameters is online beschikbaar met behulp van de Get-Command Get-Help cmdlets en .

IContentCmdletProvider

De interface System.Management.Automation.Provider.Icontentcmdletprovider definieert een inhoudsprovider die bewerkingen uitvoert op de inhoud van een gegevensitem. De volgende tabel bevat de cmdlets die door deze interface worden blootgesteld.

Cmdlet Definitie
Add-Content Hiermee worden de aangegeven waardelengten aan de inhoud van het opgegeven item toevoegen. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.
Clear-Content Hiermee stelt u de inhoud van het opgegeven item in op de waarde 'clear'. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.
Get-Content Hiermee wordt de inhoud van de opgegeven items opgehaald en worden de resultaatobjecten gestreamd.
Set-Content Vervangt de bestaande inhoud voor de opgegeven items. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.

IPropertyCmdletProvider

De interface System.Management.Automation.Provider.Ipropertycmdletprovider definieert een eigenschaps-Windows PowerShell-provider die bewerkingen uitvoert op de eigenschappen van items in het gegevensopslag. De volgende tabel bevat de cmdlets die door deze interface worden blootgesteld.

Notitie

De Path parameter op deze cmdlets geeft een pad aan naar een item in plaats van een eigenschap te identificeren.

Cmdlet Definitie
Clear-ItemProperty Hiermee stelt u eigenschappen van de opgegeven items in op de waarde 'clear'. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.
Get-ItemProperty Hiermee worden eigenschappen opgehaald uit de opgegeven items en worden de resultaatobjecten gestreamd.
Set-ItemProperty Hiermee stelt u eigenschappen van de opgegeven items met de aangegeven waarden. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.

IDynamicPropertyCmdletProvider

De interface System.Management.Automation.Provider.Idynamicpropertycmdletprovider, afgeleid van System.Management.Automation.Provider.Ipropertycmdletprovider,definieert een provider die dynamische parameters voor de ondersteunde cmdlets specificeert. Dit type provider verwerkt bewerkingen waarvoor eigenschappen tijdens run time kunnen worden gedefinieerd, bijvoorbeeld een nieuwe eigenschapsbewerking. Dergelijke bewerkingen zijn niet mogelijk op items met statisch gedefinieerde eigenschappen. De volgende tabel bevat de cmdlets die door deze interface worden blootgesteld.

Cmdlet Definitie
Copy-ItemProperty Kopieert een eigenschap van het opgegeven item naar een ander item. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.
Move-ItemProperty Hiermee verplaatst u een eigenschap van het opgegeven item naar een ander item. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.
New-ItemProperty Hiermee maakt u een eigenschap voor de opgegeven items en streamt u de resultaatobjecten.
Remove-ItemProperty Hiermee verwijdert u een eigenschap voor de opgegeven items.
Rename-ItemProperty Hiermee wijzigt u de naam van een eigenschap van de opgegeven items. Deze cmdlet geeft geen uitvoerobject door de pijplijn, tenzij de PassThru parameter is opgegeven.

ISecurityDescriptorCmdletProvider

De interface System.Management.Automation.Provider.Isecuritydescriptorcmdletprovider voegt security descriptor functionaliteit toe aan een provider. Met deze interface kan de gebruiker gegevens voor security descriptor item in het gegevensopslag verkrijgen en instellen. De volgende tabel bevat de cmdlets die door deze interface worden blootgesteld.

Cmdlet Definitie
Get-Acl Haalt de informatie op die is opgenomen in een toegangsbeheerlijst (ACL), die deel uitmaakt van een security descriptor die wordt gebruikt om besturingssysteembronnen te veiligen, bijvoorbeeld een bestand of een -object.
Set-Acl Hiermee stelt u de informatie voor een ACL. Deze heeft de vorm van een exemplaar van System.Security.Accesscontrol.Objectsecurity op de item(s) die zijn aangewezen voor het opgegeven pad. Met deze cmdlet kunt u informatie instellen over bestanden, sleutels en subsleutels in het register of een ander provideritem, als de Windows PowerShell-provider de instelling van beveiligingsgegevens ondersteunt.

Zie ook

Windows PowerShell-providers maken

Hoe Windows PowerShell werkt

Windows PowerShell SDK