Skapa en Windows PowerShell-egenskapsprovider

Det här avsnittet beskriver hur du skapar en provider som gör det möjligt för användaren att ändra egenskaperna för objekt i ett datalager. Därför kallas den här typen av leverantör för en Windows PowerShell en egenskapsprovider. Till exempel hanterar registerprovidern som tillhandahålls Windows PowerShell registernyckelvärden som egenskaper för registernyckelobjektet. Den här typen av provider måste lägga till gränssnittet System.Management.Automation.Provider.Ipropertycmdletprovider i implementeringen av .NET-klassen.

Anteckning

Windows PowerShell en mallfil som du kan använda för att utveckla en Windows PowerShell provider. Filen TemplateProvider.cs finns på Microsoft Windows Software Development Kit för Windows Vista och .NET Framework 3.0 Runtime Components. Anvisningar för nedladdning finns i Installera Windows PowerShell och Ladda ned Windows PowerShell SDK. Den nedladdade mallen är tillgänglig i <PowerShell Samples> katalogen . Du bör göra en kopia av den här filen och använda kopian för att skapa en Windows PowerShell provider, vilket tar bort alla funktioner som du inte behöver. Mer information om andra Windows PowerShell-providerimplementering finns i Designing Your Windows PowerShell Provider (Utforma din Windows PowerShell provider).

Varning

Metoderna för egenskapsprovidern ska skriva alla objekt med hjälp av metoden System.Management.Automation.Provider.Cmdletprovider.Writepropertyobject*.

Definiera Windows PowerShell leverantör

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

Definiera grundläggande funktioner

Gränssnittet System.Management.Automation.Provider.Ipropertycmdletprovider kan kopplas till någon av providerns basklasser, med undantag för klassen System.Management.Automation.Provider.Drivecmdletprovider. Lägg till de grundläggande funktioner som krävs av basklassen som du använder. Mer information om basklasser finns i Designing Your Windows PowerShell Provider (Utforma din Windows PowerShell provider).

Hämta egenskaper

För att hämta egenskaper måste providern implementera metoden System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* för att stödja anrop från Get-ItemProperty cmdleten. Den här metoden hämtar egenskaperna för objektet som finns på den angivna providerns interna sökväg (fullständigt kvalificerad).

Parametern providerSpecificPickList anger vilka egenskaper som ska hämtas. Om den här null parametern är eller tom ska 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 egenskaps påse med de hämtade egenskaperna. Metoden bör inte returnera något.

Vi rekommenderar att implementeringen av System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* stöder jokerteckenexpansion av egenskapsnamn för varje element i listrutan. Det gör du genom att använda klassen System.Management.Automation.Wildcardpattern för att utföra matchning av jokerteckenmönster.

Här är standardimplementering av System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty* från filen TemplateProvider.cs som tillhandahålls av Windows PowerShell.

Saker att komma ihåg om att implementera GetProperty

Följande villkor kan gälla för din implementering av System.Management.Automation.Provider.Ipropertycmdletprovider.Getproperty*:

Koppla dynamiska parametrar till Get-ItemProperty cmdlet

Get-ItemPropertyCmdleten kan kräva ytterligare parametrar som anges dynamiskt vid körning. För att tillhandahålla dessa dynamiska parametrar måste Windows PowerShell-egenskapsprovidern implementera metoden System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters*. Parametern path anger en fullständigt kvalificerad provider-intern sökväg, medan parametern anger de providerSpecificPickList providerspecifika egenskaper som anges på kommandoraden. Den här parametern null kan vara eller tom om egenskaperna har pipe-erats till cmdleten . I det här fallet returnerar den här metoden ett objekt som har egenskaper och fält med parsningsattribut som liknar en cmdlet-klass eller ett System.Management.Automation.Runtimedefinedparameterdictionary-objekt. Den Windows PowerShell körningen använder det returnerade objektet för att lägga till parametrarna i cmdleten.

Här är standardimplementering av System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* från filen TemplateProvider.cs som tillhandahålls av Windows PowerShell.

Inställningsegenskaper

För att ange egenskaper måste Windows PowerShell-egenskapsprovidern implementera metoden System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* för att stödja anrop från Set-ItemProperty cmdleten. Den här metoden anger en eller flera egenskaper för objektet på den angivna sökvägen och skriver över de angivna egenskaperna efter behov. System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* skriver också en instans av ett System.Management.Automation.PSObject-objekt som representerar en egenskapsuppsättning med de uppdaterade egenskaperna.

Här är standardimplementering av System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty* från filen TemplateProvider.cs som tillhandahålls av Windows PowerShell.

Saker att komma ihåg om att implementera Set-ItemProperty

Följande villkor kan gälla för en implementering av System.Management.Automation.Provider.Ipropertycmdletprovider.Setproperty*:

Koppla dynamiska parametrar för Set-ItemProperty cmdlet

Set-ItemPropertyCmdleten kan kräva ytterligare parametrar som anges dynamiskt vid körning. För att tillhandahålla dessa dynamiska parametrar måste Windows PowerShell-egenskapsprovidern implementera metoden System.Management.Automation.Provider.Ipropertycmdletprovider.Setpropertydynamicparameters*. Den här metoden returnerar ett objekt som har egenskaper och fält med parsningsattribut som liknar 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 standardimplementering av System.Management.Automation.Provider.Ipropertycmdletprovider.Getpropertydynamicparameters* från filen TemplateProvider.cs som tillhandahålls av Windows PowerShell.

Rensa egenskaper

För att rensa egenskaper måste Windows PowerShell-egenskapsprovidern implementera metoden System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* för att stödja anrop från Clear-ItemProperty cmdleten. Den här metoden anger en eller flera egenskaper för objektet som finns på den angivna sökvägen.

Här är standardimplementering av System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty* från filen TemplateProvider.cs som tillhandahålls av Windows PowerShell.

Kom ihåg att implementera ClearProperty

Följande villkor kan gälla för implementeringen av System.Management.Automation.Provider.Ipropertycmdletprovider.Clearproperty*:

Koppla dynamiska parametrar till Clear-ItemProperty cmdlet

Clear-ItemPropertyCmdleten kan kräva ytterligare parametrar som anges dynamiskt vid körning. För att tillhandahålla dessa dynamiska parametrar måste Windows PowerShell-egenskapsprovidern implementera metoden System.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters*. Den här metoden returnerar ett objekt som har egenskaper och fält med parsningsattribut som liknar 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 standardimplementering av System.Management.Automation.Provider.Ipropertycmdletprovider.Clearpropertydynamicparameters* från filen TemplateProvider.cs som tillhandahålls av Windows PowerShell.

Skapa Windows PowerShell leverantör

Se Registrera cmdlets, providers och värdprogram.

Se även

Windows PowerShell provider

Utforma din Windows PowerShell provider

Utöka objekttyper och formatering

Registrera cmdlets, providers och värdprogram