Delen via


Een Windows PowerShell Property Provider aanmaken

Dit onderwerp beschrijft hoe een provider te creëren waarmee de gebruiker de eigenschappen van items in een datastore kan manipuleren. Als gevolg hiervan wordt dit type provider aangeduid als een Windows PowerShell property provider. Zo behandelt de Registry-provider die door Windows PowerShell wordt geleverd, 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.

Opmerking

Windows PowerShell biedt een sjabloonbestand dat je kunt gebruiken om een Windows PowerShell-provider te ontwikkelen. Het TemplateProvider.cs-bestand is beschikbaar op de Microsoft Windows Software Development Kit voor Windows Vista en .NET Framework 3.0 Runtime Components. Voor downloadinstructies, zie Hoe installeer je Windows PowerShell en download de Windows PowerShell SDK. De gedownloade template is beschikbaar in de <PowerShell Samples-map> . Je zou een kopie van dit bestand moeten maken en die kopie gebruiken om een nieuwe Windows PowerShell-provider aan te maken, waarbij je alle functionaliteit verwijdert die je niet nodig hebt. Voor meer informatie over andere implementaties van Windows PowerShell-providers, zie Designing Your Windows PowerShell Provider.

Waarschuwing

De methoden van je property provider moeten alle objecten schrijven met de System.Management.Automation.Provider.CmdletProvider.Writepropertyobject* -methode.

Het definiëren van de Windows PowerShell-provider

Een property provider moet een .NET-klasse aanmaken die de System.Management.Automation.Provider.IPropertyCmdletProvider-interface ondersteunt. Hier is de standaard klasse-declaratie uit het TemplateProvider.cs-bestand dat door Windows PowerShell wordt geleverd.

Basisfunctionaliteit definiëren

De System.Management.Automation.Provider.IPropertyCmdletProvider-interface kan worden gekoppeld aan elke providerbasisklasse, met uitzondering van de System.Management.Automation.Provider.DriveCmdletProvider-klasse . Voeg de basisfunctionaliteit toe die vereist is voor de basisklasse die je gebruikt. Voor meer informatie over basisklassen, zie Designing Your Windows PowerShell Provider.

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. Deze methode haalt de eigenschappen op van het item dat zich bevindt op het gespecificeerde provider-interne pad (volledig gekwalificeerd).

De providerSpecificPickList parameter geeft aan welke eigenschappen moeten worden opgehaald. Als deze parameter leeg is null , moet de methode alle eigenschappen ophalen. Daarnaast schrijft System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* een instantie van een System.Management.Automation.PSObject-object dat een property bag van de opgehaalde eigenschappen vertegenwoordigt. De methode zou niets moeten opleveren.

Het wordt aanbevolen dat de implementatie van System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* de wildcard-uitbreiding van propertynamen voor elk element in de picklist ondersteunt. Om dit te doen, gebruik je de klasse System.Management.Automation.WildcardPattern om de wildcard-patroonmatching uit te voeren.

Hier is de standaardimplementatie van System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* uit het TemplateProvider.cs-bestand dat door Windows PowerShell wordt geleverd.

Dingen om te onthouden bij het implementeren van GetProperty

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

Dynamische parameters toevoegen aan de Get-ItemProperty cmdlet

De Get-ItemProperty cmdlet kan extra parameters vereisen die dynamisch worden gespecificeerd tijdens runtime. Om deze dynamische parameters te bieden, moet de Windows PowerShell-property provider de System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* methode implementeren. De path parameter geeft een volledig gekwalificeerd provider-intern pad aan, terwijl de providerSpecificPickList parameter de provider-specifieke eigenschappen specificeert die in de commandoregel zijn ingevoerd. Deze parameter kan leeg zijn null als de eigenschappen naar de cmdlet worden gepijpt. In dit geval levert deze methode een object terug dat eigenschappen en velden heeft met parsingattributen vergelijkbaar met een cmdlet-klasse of een System.Management.Automation.RuntimeDefinedParameterDictionary-object . De Windows PowerShell-runtime gebruikt het geretourneerde object om de parameters aan de cmdlet toe te voegen.

Hier is de standaardimplementatie van System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* uit het TemplateProvider.cs-bestand dat door Windows PowerShell wordt geleverd.

Eigenschappen instellen

Om eigenschappen in te stellen, moet de Windows PowerShell-property provider de methode System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* implementeren om aanroepen van de Set-ItemProperty cmdlet te ondersteunen. Deze methode stelt één of meer eigenschappen van het item in op het opgegeven pad en overschrijft de geleverde eigenschappen indien nodig. System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* schrijft ook een instantie van een System.Management.Automation.PSObject-object dat een property bag van de bijgewerkte eigenschappen vertegenwoordigt.

Hier is de standaardimplementatie van System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* uit het TemplateProvider.cs-bestand dat door Windows PowerShell wordt geleverd.

Dingen om te onthouden bij het implementeren van Set-ItemProperty

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

Dynamische parameters toevoegen voor de Set-ItemProperty cmdlet

De Set-ItemProperty cmdlet kan extra parameters vereisen die dynamisch worden gespecificeerd tijdens runtime. Om deze dynamische parameters te bieden, moet de Windows PowerShell-property provider de System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters* methode implementeren. Deze methode geeft een object terug dat eigenschappen en velden heeft met parsingattributen vergelijkbaar met een cmdlet-klasse of een System.Management.Automation.RuntimeDefinedParameterDictionary-object . De null waarde kan worden teruggegeven als er geen dynamische parameters worden toegevoegd.

Hier is de standaardimplementatie van System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* uit het TemplateProvider.cs-bestand dat door Windows PowerShell wordt geleverd.

Zuiveringseigendommen

Om eigenschappen te wissen, moet de Windows PowerShell-property provider de methode System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* implementeren om aanroepen van de Clear-ItemProperty cmdlet te ondersteunen. Deze methode stelt één of meer eigenschappen in voor het item dat zich op het opgegeven pad bevindt.

Hier is de standaardimplementatie van System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* uit het TemplateProvider.cs-bestand dat door Windows PowerShell wordt geleverd.

Iets om te onthouden bij het implementeren van ClearProperty

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

Dynamische parameters toevoegen aan de Clear-ItemProperty cmdlet

De Clear-ItemProperty cmdlet kan extra parameters vereisen die dynamisch worden gespecificeerd tijdens runtime. Om deze dynamische parameters te bieden, moet de Windows PowerShell-property provider de System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* implementeren. Deze methode geeft een object terug dat eigenschappen en velden heeft met parsingattributen vergelijkbaar met een cmdlet-klasse of een System.Management.Automation.RuntimeDefinedParameterDictionary-object . De null waarde kan worden teruggegeven als er geen dynamische parameters worden toegevoegd.

Hier is de standaardimplementatie van System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* uit het TemplateProvider.cs-bestand dat door Windows PowerShell wordt geleverd.

Het bouwen van de Windows PowerShell-provider

Bekijk hoe u cmdlets, providers en hostapplicaties registreert.

Zie ook

Windows PowerShell provider

Design Your Windows PowerShell provider

Uitbreiden van objecttypes en opmaak

Hoe registreer je cmdlets, providers en hostapplicaties