Skapa en Windows PowerShell-egenskapsleverantör

Detta ämne beskriver hur man skapar en leverantör som gör det möjligt för användaren att manipulera egenskaperna hos objekt i en datalagring. Som en följd kallas denna typ av leverantör för en Windows PowerShell-egenskapsleverantör. Till exempel hanterar registerleverantören som tillhandahålls av Windows PowerShell registernyckelvärden som egenskaper för registreringsnyckelobjektet. Denna typ av leverantör måste lägga till System.Management.Automation.Provider.IPropertyCmdletProvider-gränssnittet till implementeringen av .NET-klassen.

Anmärkning

Windows PowerShell tillhandahåller en mallfil som du kan använda för att utveckla en Windows PowerShell-leverantör. TemplateProvider.cs-filen finns tillgänglig på Microsoft Windows Software Development Kit för Windows Vista och .NET Framework 3.0 Runtime Components. För nedladdningsinstruktioner, se Hur man installerar Windows PowerShell och laddar ner Windows PowerShell SDK. Den nedladdade mallen finns tillgänglig i PowerShell Samples-katalogen<>. Du bör göra en kopia av denna fil och använda kopian för att skapa en ny Windows PowerShell-leverantör, och ta bort all funktionalitet du inte behöver. För mer information om andra implementeringar av Windows PowerShell-leverantörer, se Designing Your Windows PowerShell Provider.

Försiktighet

Metoderna hos din fastighetsleverantör bör skriva alla objekt med System.Management.Automation.Provider.CmdletProvider.Writepropertyobject* -metoden.

Definiera Windows PowerShell-leverantören

En egenskapsleverantör måste skapa en .NET-klass som stöder System.Management.Automation.Provider.IPropertyCmdletProvider-gränssnittet . Här är standardklassdeklarationen från TemplateProvider.cs-filen som tillhandahålls av Windows PowerShell.

Definiera basfunktionalitet

System.Management.Automation.Provider.IPropertyCmdletProvider-gränssnittet kan kopplas till vilken av leverantörens basklasser som helst, med undantag för System.Management.Automation.Provider.DriveCmdletProvider-klassen. Lägg till den grundläggande funktionalitet som krävs av basklassen du använder. För mer information om basklasser, se Designing Your Windows PowerShell Provider.

Återvinning av egenskaper

För att hämta egenskaper måste leverantören implementera metoden System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* för att stödja anrop från Get-ItemProperty cmdleten. Denna metod hämtar egenskaperna hos objektet som är placerat vid den specificerade leverantörsinterna vägen (fullt kvalificerad).

Parametern providerSpecificPickList anger vilka egenskaper som ska hämtas. Om denna parameter är null eller tom, bör metoden hämta alla egenskaper. Dessutom skriver System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* en instans av ett System.Management.Automation.PSObject-objekt som representerar en property bag med de hämtade egenskaperna. Metoden borde inte ge något.

Det rekommenderas att implementeringen av System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* stödjer wildcard-expansion av egenskapsnamn för varje element i vallistan. För att göra detta, använd klassen System.Management.Automation.WildcardPattern för att utföra wildcard-mönstermatchningen.

Här är standardimplementeringen av System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* från den TemplateProvider.cs-fil som tillhandahålls av Windows PowerShell.

Saker att tänka på när man implementerar GetProperty

Följande villkor kan gälla för din implementation av System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty*:

Att fästa dynamiska parametrar till Get-ItemProperty cmdleten

Cmdleten Get-ItemProperty kan kräva ytterligare parametrar som specificeras dynamiskt vid körning. För att tillhandahålla dessa dynamiska parametrar måste Windows PowerShell-egenskapsleverantören implementera System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* -metoden. Parametern path anger en fullt kvalificerad leverantör-intern sökväg, medan parametern providerSpecificPickList anger de leverantörsspecifika egenskaper som anges i kommandoraden. Denna parameter kan vara null eller tom om egenskaperna skickas till cmdleten. I detta fall returnerar denna metod ett objekt som har egenskaper och fält med parsingattribut liknande en cmdlet-klass eller ett System.Management.Automation.RuntimeDefinedParameterDictionary-objekt . Windows PowerShell-runtime använder det returnerade objektet för att lägga till parametrarna i cmdleten.

Här är standardimplementeringen av System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* från TemplateProvider.cs-filen som tillhandahålls av Windows PowerShell.

Ange egenskaper

För att sätta egenskaper måste Windows PowerShell-egenskapsleverantören implementera metoden System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* för att stödja anrop från Set-ItemProperty cmdlet. Denna metod sätter en eller flera egenskaper hos objektet på den angivna vägen och skriver över de tillhandahållna egenskaperna vid behov. System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* skriver också en instans av ett System.Management.Automation.PSObject-objekt som representerar en egenskapspåse med de uppdaterade egenskaperna.

Här är standardimplementeringen av System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* från TemplateProvider.cs filen som tillhandahålls av Windows PowerShell.

Saker att komma ihåg när man implementerar Set-ItemProperty

Följande villkor kan gälla för en implementation av System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty*:

Att fästa dynamiska parametrar för Set-ItemProperty cmdlet

Cmdleten Set-ItemProperty kan kräva ytterligare parametrar som specificeras dynamiskt vid körning. För att tillhandahålla dessa dynamiska parametrar måste Windows PowerShell-egenskapsleverantören implementera metoden System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters* . Denna metod returnerar ett objekt som har egenskaper och fält med parsningsattribut liknande en cmdlet-klass eller ett System.Management.Automation.RuntimeDefinedParameterDictionary-objekt . Värdet null kan returneras om inga dynamiska parametrar ska läggas till.

Här är standardimplementeringen av System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* från TemplateProvider.cs-filen som tillhandahålls av Windows PowerShell.

Rensningsfastigheter

För att rensa egenskaper måste Windows PowerShell-egenskapsleverantören implementera metoden System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* för att stödja anrop från Clear-ItemProperty cmdleten. Denna metod sätter en eller flera egenskaper för objektet som finns vid den angivna vägen.

Här är standardimplementeringen av System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* från TemplateProvider.cs-filen som tillhandahålls av Windows PowerShell.

Saker att komma ihåg när du implementerar ClearProperty

Följande villkor kan gälla för din implementation av System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty*:

Att fästa dynamiska parametrar till Clear-ItemProperty cmdleten

Cmdleten Clear-ItemProperty kan kräva ytterligare parametrar som specificeras dynamiskt vid körning. För att tillhandahålla dessa dynamiska parametrar måste Windows PowerShell-egenskapsleverantören implementera System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* -metoden. Denna metod returnerar ett objekt som har egenskaper och fält med parsningsattribut liknande en cmdlet-klass eller ett System.Management.Automation.RuntimeDefinedParameterDictionary-objekt . Värdet null kan returneras om inga dynamiska parametrar ska läggas till.

Här är standardimplementeringen av System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* från TemplateProvider.cs-filen som tillhandahålls av Windows PowerShell.

Bygger Windows PowerShell-leverantören

Se hur du registrerar cmdlets, leverantörer och värdapplikationer.

Se även

Windows PowerShell provider

Designa din Windows PowerShell-leverantör

Utvidgning av objekttyper och formatering

Hur man registrerar cmdlets, leverantörer och värdapplikationer