Dela via


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 provider för en Windows PowerShell-egenskapsprovider. Registerprovidern som tillhandahålls av Windows PowerShell hanterar till exempel 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.

Anmärkning

Windows PowerShell innehåller en mallfil som du kan använda för att utveckla en Windows PowerShell-provider. Filen TemplateProvider.cs finns i Microsoft Windows Software Development Kit för Windows Vista och .NET Framework 3.0 Runtime Components. Instruktioner för nedladdning finns i Så här installerar du Windows PowerShell och laddar ned Windows PowerShell SDK. Den nedladdade mallen är tillgänglig i katalogen <PowerShell-exempel>. Du bör göra en kopia av den här filen och använda kopian för att skapa en ny Windows PowerShell-provider och ta bort alla funktioner som du inte behöver. Mer information om andra Implementeringar av Windows PowerShell-providern finns i Designing Your Windows PowerShell Provider.

Försiktighet

Egenskapsproviderns metoder bör skriva objekt med hjälp av metoden System.Management.Automation.Provider.CmdletProvider.Writepropertyobject*.

Definiera Windows PowerShell-providern

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 basfunktioner

-gränssnittet System.Management.Automation.Provider.IPropertyCmdletProvider kan kopplas till någon av providerbasklasserna, med undantag för System.Management.Automation.Provider.DriveCmdletProvider-klassen. Lägg till basfunktionerna som krävs av basklassen som du använder. Mer information om basklasser finns i Utforma din Windows PowerShell-provider.

Hämtar 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 cmdleten Get-ItemProperty. Den här metoden hämtar egenskaperna för objektet som finns på den angivna provider-interna sökvägen (fullständigt kvalificerad).

Parametern providerSpecificPickList anger vilka egenskaper som ska hämtas. Om den här parametern är null 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 egenskapsuppsättning för de hämtade egenskaperna. Metoden ska inte returnera någonting.

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 matchningen av jokerteckenmönstret.

Här är standardimplementeringen 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 implementeringen av System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty*:

Koppla dynamiska parametrar till cmdleten Get-ItemProperty

Cmdleten Get-ItemProperty 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 System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters*-metoden. Parametern path anger en fullständigt kvalificerad provider-intern sökväg, medan parametern providerSpecificPickList anger de providerspecifika egenskaper som anges på kommandoraden. Den här parametern kan vara null eller tom om egenskaperna skickas 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 en System.Management.Automation.RuntimeDefinedParameterDictionary-objekt. Windows PowerShell-körningen 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 filen TemplateProvider.cs som tillhandahålls av Windows PowerShell.

Ange egenskaper

Om du vill ange egenskaper måste Windows PowerShell-egenskapsprovidern implementera System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty*-metoden för att stödja anrop från cmdleten Set-ItemProperty. 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 standardimplementeringen 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 cmdleten Set-ItemProperty

Cmdleten Set-ItemProperty 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 System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters*-metoden. Den här metoden returnerar ett objekt som har egenskaper och fält med parsningsattribut som liknar en cmdlet-klass eller en 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 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 cmdleten Clear-ItemProperty. Den här metoden anger en eller flera egenskaper för objektet som finns på den angivna sökvägen.

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

Tänk på att implementera ClearProperty

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

Koppla dynamiska parametrar till cmdleten Clear-ItemProperty

Cmdleten Clear-ItemProperty 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 en 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 filen TemplateProvider.cs som tillhandahålls av Windows PowerShell.

Skapa Windows PowerShell-providern

Se Så här registrerar du cmdletar, leverantörer och värdprogram.

Se även

Windows PowerShell-provider

Utforma Din Windows PowerShell-provider

utöka objekttyper och formatering

Registrera cmdletar, leverantörer och värdprogram