Een Windows PowerShell-eigenschapsprovider maken

In dit onderwerp wordt beschreven hoe u een provider maakt waarmee de gebruiker de eigenschappen van items in een gegevensopslag kan bewerken. Als gevolg hiervan wordt dit type provider aangeduid als een Windows PowerShell-eigenschapsprovider. De registerprovider van de Windows PowerShell verwerkt bijvoorbeeld registersleutelwaarden als eigenschappen van het registersleutelitem. Dit type provider moet de interface System.Management.Automation.Provider.Ipropertycmdletprovider toevoegen aan de implementatie van de .NET-klasse.

Notitie

Windows PowerShell biedt een sjabloonbestand dat u kunt gebruiken om een Windows PowerShell ontwikkelen. Het bestand TemplateProvider.cs is beschikbaar op de Microsoft Windows Software Development Kit voor Windows Vista en .NET Framework 3.0 Runtime Components. Zie How to Install Windows PowerShell and Download the Windows PowerShell SDK voor downloadinstructies. De gedownloade sjabloon is beschikbaar in de <PowerShell Samples> map . U moet een kopie van dit bestand maken en de kopie gebruiken voor het maken van een nieuwe Windows PowerShell-provider, waardoor alle functionaliteit die u niet nodig hebt, wordt verwijderd. Zie Uw Windows PowerShell provider ontwerpen voor meer informatie over andere implementaties van Windows PowerShell-provider.

Waarschuwing

De methoden van uw eigenschapsprovider moeten objecten schrijven met behulp van de methode System.Management.Automation.Provider.Cmdletprovider.Writepropertyobject*.

De provider Windows PowerShell definiƫren

Een eigenschapsprovider moet een .NET-klasse maken die ondersteuning biedt voor de interface System.Management.Automation.Provider.Ipropertycmdletprovider. Hier is de standaardklassedeclaratie van het bestand TemplateProvider.cs dat wordt geleverd door Windows PowerShell.

Basisfunctionaliteit definiƫren

De interface System.Management.Automation.Provider.Ipropertycmdletprovider kan worden gekoppeld aan een van de providerbasisklassen, met uitzondering van de klasse System.Management.Automation.Provider.Drivecmdletprovider. Voeg de basisfunctionaliteit toe die is vereist voor de basisklasse die u gebruikt. Zie Uw Windows PowerShell-provider ontwerpen voor meer informatie over basisklassen.

Eigenschappen ophalen

Om eigenschappen op te halen, moet de provider de methode System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* implementeren om aanroepen van de Get-ItemProperty cmdlet te ondersteunen. Met deze methode worden de eigenschappen opgehaald van het item dat zich op het opgegeven provider-interne pad (volledig gekwalificeerd) bevindt.

De providerSpecificPickList parameter geeft aan welke eigenschappen moeten worden opgehaald. Als deze parameter is null of leeg is, moet de methode alle eigenschappen ophalen. Daarnaast schrijft System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* een exemplaar van een System.Management.Automation.PSObject-object dat een eigenschappentas van de opgehaalde eigenschappen vertegenwoordigt. De methode moet niets retourneren.

Het wordt aanbevolen dat de implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* ondersteuning biedt voor de uitbreiding van eigenschapsnamen met jokertekens voor elk element in de keuzelijst. Gebruik hiervoor de klasse System.Management.Automation.Wildcardpattern om het jokertekenpatroon te matchen.

Hier is de standaard implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* uit het bestand TemplateProvider.cs van Windows PowerShell.

Dingen die u moet onthouden over het implementeren van GetProperty

De volgende voorwaarden kunnen van toepassing zijn op uw implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty*:

Dynamische parameters koppelen aan de Get-ItemProperty cmdlet

De Get-ItemProperty cmdlet vereist mogelijk aanvullende parameters die dynamisch zijn opgegeven tijdens runtime. Om deze dynamische parameters op te geven, moet de Windows PowerShell eigenschapsprovider de methode System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* implementeren. De parameter geeft een volledig gekwalificeerde provider-intern pad aan, terwijl de parameter de providerspecifieke eigenschappen opgeeft die zijn ingevoerd path providerSpecificPickList op de opdrachtregel. Deze parameter kan leeg null zijn of zijn als de eigenschappen worden doorspijpt naar de cmdlet . In dit geval retourneert deze methode een object met eigenschappen en velden met parseringskenmerken die vergelijkbaar zijn met een cmdlet-klasse of een System.Management.Automation.Runtimedefinedparameterdictionary-object. De Windows PowerShell runtime gebruikt het geretourneerde object om de parameters toe te voegen aan de cmdlet .

Hier is de standaard implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* uit het bestand TemplateProvider.cs van Windows PowerShell.

Eigenschappen van instelling

Als u eigenschappen wilt instellen, moet de Windows PowerShell-eigenschapsprovider de methode System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* implementeren om aanroepen van de Set-ItemProperty cmdlet te ondersteunen. Met deze methode stelt u een of meer eigenschappen van het item op het opgegeven pad in en overschrijft u indien nodig de opgegeven eigenschappen. System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* schrijft ook een exemplaar van een System.Management.Automation.PSObject-object dat een eigenschappenset van de bijgewerkte eigenschappen vertegenwoordigt.

Hier is de standaard implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* uit het bestand TemplateProvider.cs van Windows PowerShell.

Dingen om te onthouden over het implementeren van Set-ItemProperty

De volgende voorwaarden kunnen van toepassing zijn op een implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty*:

Dynamische parameters koppelen voor de Set-ItemProperty cmdlet

De Set-ItemProperty cmdlet vereist mogelijk aanvullende parameters die dynamisch zijn opgegeven tijdens runtime. Om deze dynamische parameters op te geven, moet de Windows PowerShell-eigenschapsprovider de methode System.Management.Automation.Provider.Ipropertycmdletprovider.Setpropertydynamicparameters* implementeren. Deze methode retourneert een object met eigenschappen en velden met parseringskenmerken die vergelijkbaar zijn met een cmdlet-klasse of een System.Management.Automation.Runtimedefinedparameterdictionary-object. De null waarde kan worden geretourneerd als er geen dynamische parameters moeten worden toegevoegd.

Hier is de standaard implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* uit het bestand TemplateProvider.cs van Windows PowerShell.

Eigenschappen wissen

Als u eigenschappen wilt verwijderen, moet de Windows PowerShell-eigenschapsprovider de methode System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* implementeren om aanroepen van de Clear-ItemProperty cmdlet te ondersteunen. Met deze methode stelt u een of meer eigenschappen in voor het item dat zich op het opgegeven pad bevindt.

Hier is de standaard implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* uit het bestand TemplateProvider.cs van Windows PowerShell.

Wat u moet onthouden over het implementeren van ClearProperty

De volgende voorwaarden kunnen van toepassing zijn op uw implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty*:

Dynamische parameters koppelen aan de Clear-ItemProperty cmdlet

De Clear-ItemProperty cmdlet vereist mogelijk aanvullende parameters die dynamisch zijn opgegeven tijdens runtime. Als u deze dynamische parameters wilt opgeven, moet de Windows PowerShell-eigenschapsprovider de methode System.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters* implementeren. Deze methode retourneert een object met eigenschappen en velden met parseringskenmerken die vergelijkbaar zijn met een cmdlet-klasse of een System.Management.Automation.Runtimedefinedparameterdictionary-object. De null waarde kan worden geretourneerd als er geen dynamische parameters moeten worden toegevoegd.

Hier is de standaard implementatie van System.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters* uit het bestand TemplateProvider.cs dat door de Windows PowerShell.

De Windows PowerShell bouwen

Zie Cmdlets, providers en hosttoepassingen registreren.

Zie ook

Windows PowerShell provider

Uw Windows PowerShell ontwerpen

Objecttypen en -opmaak uitbreiden

Cmdlets, providers en hosttoepassingen registreren