Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En Windows PowerShell-provider tillåter att alla datalager exponeras som ett filsystem som om det vore en monterad enhet. Med den inbyggda registerprovidern kan du till exempel navigera i registret på samma sätt som du navigerar i den c
enheten på datorn. En provider kan också åsidosätta Item
-cmdletar (till exempel Get-Item
, Set-Item
osv.) så att data i datalagret kan behandlas som filer och kataloger som behandlas när du navigerar i ett filsystem. Mer information om leverantörer och enheter och de inbyggda leverantörerna i Windows PowerShell finns i about_Providers.
Leverantörer och enheter
En provider definierar logiken som används för att komma åt, navigera och redigera ett datalager, medan en enhet anger en specifik startpunkt för ett datalager (eller en del av ett datalager) som är av den typ som definieras av providern. Med registerprovidern kan du till exempel komma åt registreringsdatafiler och nycklar i ett register, och HKLM- och HKCU-enheterna anger motsvarande registreringsdatafiler i registret. HKLM- och HKCU-enheterna använder båda registerprovidern.
När du skriver en provider kan du ange standardenheter som skapas automatiskt när providern är tillgänglig. Du definierar också en metod för att skapa nya enheter som använder providern.
Typ av providrar
Det finns flera typer av leverantörer, som var och en har olika funktionsnivå. En provider implementeras som en klass som härleds från en av underordnade i klassen System.Management.Automation.SessionStateCategoryCmdletProvider. Information om de olika typerna av leverantörer finns i Providertyper.
Cmdlets för providers
Leverantörer kan implementera metoder som motsvarar cmdletar och skapa anpassade beteenden för dessa cmdletar när de används på en enhet för den providern. Beroende på typen av provider är olika uppsättningar med cmdletar tillgängliga. En fullständig lista över de cmdletar som är tillgängliga för anpassning i leverantörer finns i Provider-cmdletar.
Providersökvägar
Användare navigerar på providerenheter som filsystem. Därför förväntar de sig att syntaxen för sökvägar motsvarar sökvägarna som används i filsystemnavigering. När en användare kör en provider-cmdlet anger de en sökväg till det objekt som ska nås. Den angivna sökvägen kan tolkas på flera sätt. En provider bör ha stöd för en eller flera av följande sökvägstyper.
Körkvalificerade sökvägar
En enhetskvalificerad sökväg är en kombination av objektnamnet, containern och undercontainers som objektet finns i och Windows PowerShell-enheten som objektet nås via. (Enheter definieras av providern som används för att komma åt datalagret. Den här sökvägen börjar med enhetsnamnet följt av ett kolon (:). Till exempel: Get-ChildItem C:
Providerkvalificerade sökvägar
För att Windows PowerShell-motorn ska kunna initiera och enas om din provider måste providern ha stöd för en providerkvalificerad sökväg. Användaren kan till exempel initiera och uninitialisera FileSystem-providern eftersom den definierar följande providerkvalificerade sökväg: FileSystem::\\uncshare\abc\bar
.
Providerdirigeringssökvägar
Om du vill tillåta fjärråtkomst till din Windows PowerShell-provider bör den ha stöd för en providerdirigeringssökväg för att skicka direkt till Windows PowerShell-providern för den aktuella platsen. Till exempel kan registrets Windows PowerShell-provider använda \\server\regkeypath
som en providerdirigeringssökväg.
Provider-interna sökvägar
Om du vill tillåta provider-cmdleten att komma åt data med andra API:er än Windows PowerShell-programprogram bör Din Windows PowerShell-provider ha stöd för en providerintern sökväg. Den här sökvägen anges efter "::" i den providerkvalificerade sökvägen. Till exempel är den provider-interna sökvägen för FileSystem Windows PowerShell-providern \\uncshare\abc\bar
.
Övergripande cmdlet-parametrar
Beteendet för vissa providerspecifika cmdletar kan åsidosättas av en provider. En lista över parametrar som kan åsidosättas och hur du åsidosätter dem i providerklassen finns i Provider-cmdletparametrar
Dynamiska parametrar
Leverantörer kan definiera dynamiska parametrar som läggs till i en provider-cmdlet när användaren anger ett visst värde för en av cmdletens statiska parametrar. En provider gör detta genom att implementera en eller flera dynamiska parametermetoder. En lista över cmdlet-parametrar som kan användas för att lägga till dynamisk parameter och de metoder som används för att implementera dem finns i dynamiska provider-cmdlet-parametrar.
Providerfunktioner
System.Management.Automation.Provider.ProviderCapabilities uppräkning definierar ett antal funktioner som leverantörer kan stödja. Dessa inkluderar möjligheten att använda jokertecken, filterobjekt och stödtransaktioner. Om du vill ange funktioner för en provider lägger du till en lista med värden för System.Management.Automation.Provider.ProviderCapabilities uppräkning. kombinerat med en logisk OR
åtgärd, som egenskapen System.Management.Automation.Provider.CmdletProviderAttribute.ProviderCapabilities* (attributets andra parameter) i System.Management.Automation.Provider.CmdletProviderAttribute attribut för providerklassen. Följande attribut anger till exempel att providern stöder System.Management.Automation.Provider.ProviderCapabilitiesShouldProcess och System.Management.Automation.Provider.ProviderCapabilitiesTransaktioner funktioner.
[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]
Hjälp om provider-cmdlet
När du skriver en leverantör kan du implementera din egen hjälp för de provider-cmdletar som du stöder. Detta inkluderar ett enda hjälpavsnitt för varje provider-cmdlet eller flera versioner av ett hjälpavsnitt för fall där provider-cmdleten fungerar annorlunda baserat på användningen av dynamiska parametrar. För att stödja providerns cmdlet-specifika hjälp måste leverantören implementera gränssnittet System.Management.Automation.Provider.ICmdletProviderSupportsHelp.
Windows PowerShell-motorn anropar metoden System.Management.Automation.Provider.ICmdletProviderSupportsHelp.GetHelpMaml* för att visa hjälpavsnittet för dina provider-cmdletar. Motorn innehåller namnet på den cmdlet som användaren angav när Get-Help
-cmdleten kördes och användarens aktuella sökväg.
Den aktuella sökvägen krävs om providern implementerar olika versioner av samma provider-cmdlet för olika enheter. Metoden måste returnera en sträng som innehåller XML för cmdlet-hjälpen.
Innehållet i hjälpfilen skrivs med PSMAML XML. Det här är samma XML-schema som används för att skriva hjälpinnehåll för fristående cmdletar. Lägg till innehållet för din anpassade cmdlet-hjälp i hjälpfilen för providern under elementet CmdletHelpPaths
. I följande exempel visas command
-elementet för en enda provider-cmdlet och visar hur du anger namnet på provider-cmdleten som providern. Stöder
<CmdletHelpPaths>
<command:command>
<command:details>
<command:name>ProviderCmdletName</command:name>
<command:verb>Verb</command:verb>
<command:noun>Noun</command:noun>
<command:details>
</command:command>
<CmdletHelpPath>