Designa en Windows PowerShell-provider
Du bör implementera en Windows PowerShell provider om din produkt eller konfiguration exponerar en uppsättning lagrade data, till exempel en databas som användaren vill navigera i eller bläddra i. Om din produkt tillhandahåller en container, även om den inte är en container på flera nivåer, är det dessutom klokt att implementera en Windows PowerShell provider. Du kanske till exempel vill implementera en Windows PowerShell-containerprovider om cmdlet-verbet Kopiera, Flytta, Byt namn, Ny eller Ta bort är en åtgärd på dina produkt- eller konfigurationsdata.
Windows PowerShell Sökvägar identifierar din leverantör
Körningen Windows PowerShell använder Windows PowerShell för att få åtkomst till lämplig Windows PowerShell provider. När en cmdlet anger en av dessa sökvägar vet körningen vilken provider som ska användas för att komma åt det associerade datalagret. Dessa sökvägar omfattar enhetskvalificerade sökvägar, leverantörskvalificerade sökvägar, provider-direkta sökvägar och provider-interna sökvägar. Varje Windows PowerShell måste ha stöd för en eller flera av dessa sökvägar.
Mer information om Windows PowerShell finns i Så här Windows PowerShell fungerar.
Definiera en Drive-Qualified sökväg
Om du vill ge användaren åtkomst till data som finns på en fysisk enhet Windows PowerShell providern ha stöd för en enhetskvalificerad sökväg. Den här sökvägen börjar med enhetsnamnet följt av ett kolon (:) till exempel mydrive:\abc\bar.
Definiera en Provider-Qualified sökväg
För att Windows PowerShell tillåta att Windows PowerShell initierar och oinitierar providern måste din Windows PowerShell ha stöd för en leverantörskvalificerad sökväg. FileSystem:: \uncshare\abc\bar är till exempel den providerkvalificerade sökvägen för filsystemsprovidern som \ används Windows PowerShell.
Definiera en Provider-Direct sökväg
För att tillåta fjärråtkomst till din Windows PowerShell bör den ha stöd för en direkt providersökväg som skickas direkt till Windows PowerShell för den aktuella platsen. Registertjänstleverantören kan till exempel Windows PowerShell \ \server\regkeypath som en direkt providersökväg.
Definiera en Provider-Internal sökväg
Om du vill tillåta att provider-cmdleten får åtkomst till data med hjälp Windows PowerShell API:er (Application Programming Interfaces) bör Windows PowerShell-providern ha stöd för en intern providersökväg. Den här sökvägen anges efter "::" i den providerkvalificerade sökvägen. Den interna sökvägen för filsystemet är till exempel Windows PowerShell \ \uncshare\abc\bar.
Ändra lagrade data
När du åsidosätter metoder som ändrar det underliggande datalagret anropar du alltid metoden System.Management.Automation.Provider.Cmdletprovider.Writeitemobject* med den senaste versionen av objektet som ändrats med den metoden. Providerinfrastrukturen avgör om objektobjektet måste skickas till pipelinen, till exempel när användaren anger parametern -PassThru. Om hämtning av det senaste objektet är en kostsam åtgärd (prestandamässigt) kan du testa egenskapen Context.PassThru för att avgöra om du faktiskt behöver skriva det resulterande objektet.
Välj en basklass för din leverantör
Windows PowerShell innehåller ett antal basklasser som du kan använda för att implementera din egen Windows PowerShell provider. När du utformar en leverantör väljer du den basklass som beskrivs i det här avsnittet och som passar bäst för dina behov.
Varje Windows PowerShell providerns basklass gör en uppsättning cmdlets tillgängliga. Det här avsnittet beskriver cmdletarna, men beskriver inte deras parametrar.
Med sessionstillståndet gör Windows PowerShell-körningen flera plats-cmdlets tillgängliga för vissa Windows PowerShell providers, till exempel Get-Location
Set-Location
Pop-Location
cmdletarna , , Push-Location
och . Du kan använda Get-Help
cmdleten för att hämta information om dessa plats-cmdlets.
CmdletProvider, basklass
Klassen System.Management.Automation.Provider.Cmdletprovider definierar en grundläggande Windows PowerShell provider. Den här klassen stöder leverantörsdeklarationen och tillhandahåller ett antal egenskaper och metoder som är tillgängliga för alla Windows PowerShell leverantörer.
Klassen anropas av Get-PSProvider
cmdleten för att lista alla tillgängliga providers för en session.
Implementeringen av denna cmdlet beror på sessionstillståndet.
Anteckning
Windows PowerShell leverantörer är tillgängliga för alla Windows PowerShell språkomfång.
DriveCmdletProvider, basklass
Klassen System.Management.Automation.Provider.Drivecmdletprovider definierar en Windows PowerShell-enhetsprovider som stöder åtgärder för att lägga till nya enheter, ta bort befintliga enheter och initiera standardenheter. FileSystem-providern som tillhandahålls av Windows PowerShell initierar till exempel enheter för alla volymer som är monterade, till exempel hårddiskar och CD/DVD-enheter.
Den här klassen härleds från basklassen System.Management.Automation.Provider.Cmdletprovider. I följande tabell visas de cmdlets som exponeras av den här klassen. Förutom de som visas är cmdleten (exponerad av sessionstillstånd) en relaterad Get-PSDrive
cmdlet som används för att hämta tillgängliga enheter.
Cmdlet | Definition |
---|---|
New-PSDrive |
Skapar en ny enhet för sessionen och strömmar enhetsinformation. |
Remove-PSDrive |
Tar bort en enhet från sessionen. |
ItemCmdletProvider, basklass
Klassen System.Management.Automation.Provider.Itemcmdletprovider definierar en Windows PowerShell-objektprovider som utför åtgärder på enskilda objekt i datalagret och den förutsätter inte några container- eller navigeringsfunktioner. Den här klassen härleds från basklassen System.Management.Automation.Provider.Drivecmdletprovider. I följande tabell visas de cmdlets som exponeras av den här klassen.
Cmdlet | Definition |
---|---|
Clear-Item |
Rensar det aktuella innehållet i objekt på den angivna platsen och ersätter det med det "rensa"-värde som angetts av providern. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
Get-Item |
Hämtar objekt från den angivna platsen och strömmar de resulterande objekten. |
Invoke-Item |
Anropar standardåtgärden för objektet på den angivna sökvägen. |
Set-Item |
Anger ett objekt på den angivna platsen med det angivna värdet. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
Resolve-Path |
Matchar jokertecken för en Windows PowerShell sökväg och strömmar sökvägsinformation. |
Test-Path |
Testar för den angivna sökvägen och returnerar true om den finns eller false inte. Den här cmdleten implementeras för att stödja parametern för metoden IsContainer System.Management.Automation.Provider.Cmdletprovider.Writeitemobject*. |
ContainerCmdletProvider, basklass
Klassen System.Management.Automation.Provider.Containercmdletprovider definierar en Windows PowerShell-containerprovider som exponerar en container för datalagerobjekt för användaren. Tänk på att en Windows PowerShell containerprovider endast kan användas när det finns en container (inga kapslade containrar) med objekt i den. Om det finns kapslade containrar måste du implementera en Windows PowerShell navigeringsprovider .
Den här klassen härleds från basklassen System.Management.Automation.Provider.Itemcmdletprovider. I följande tabell definieras de cmdlets som implementeras av den här klassen.
Cmdlet | Definition |
---|---|
Copy-Item |
Kopierar objekt från en plats till en annan. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
Get-Childitem |
Hämtar underordnade objekt på den angivna platsen och strömmar dem som objekt. |
New-Item |
Skapar nya objekt på den angivna platsen och strömmar det resulterande objektet. |
Remove-Item |
Tar bort objekt från den angivna platsen. |
Rename-Item |
Byter namn på ett objekt på den angivna platsen. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
NavigationCmdletProvider, basklass
Klassen System.Management.Automation.Provider.Navigationcmdletprovider definierar en Windows PowerShell-navigeringsprovider som utför åtgärder för objekt som använder mer än en container. Den här klassen härleds från basklassen System.Management.Automation.Provider.Containercmdletprovider. I följande tabell visas de cmdlets som exponeras av den här klassen.
Cmdlet | Definition |
---|---|
Combine-Path | Kombinerar två sökvägar till en enda sökväg med hjälp av en providerspecifik avgränsare mellan sökvägar. Denna cmdlet strömmar strängar. |
Move-Item |
Flyttar objekt till den angivna platsen. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
En relaterad cmdlet är den grundläggande Parse-Path cmdleten som Windows PowerShell. Den här cmdleten kan användas för att parsa en Windows PowerShell sökväg som stöd för Parent
parametern. Den strömmar den överordnade sökvägssträngen.
Välj providergränssnitt som stöd
Förutom att härleda från en av Windows PowerShell-basklasserna kan din Windows PowerShell-provider stödja andra funktioner genom att härleda från ett eller flera av följande providergränssnitt. Det här avsnittet definierar de gränssnitt och cmdlets som stöds av var och en. Den beskriver inte parametrarna för cmdletarna som stöds av gränssnittet. Information om cmdlet-parametern är tillgänglig online med hjälp av Get-Command
Get-Help
cmdletarna och .
IContentCmdletProvider
Gränssnittet System.Management.Automation.Provider.Icontentcmdletprovider definierar en innehållsprovider som utför åtgärder på innehållet i ett dataobjekt. I följande tabell visas de cmdlets som exponeras av det här gränssnittet.
Cmdlet | Definition |
---|---|
Add-Content |
Lägger till de angivna värdelängderna i innehållet i det angivna objektet. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
Clear-Content |
Anger innehållet i det angivna objektet till värdet "rensa". Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
Get-Content |
Hämtar innehållet i de angivna objekten och strömmar de resulterande objekten. |
Set-Content |
Ersätter det befintliga innehållet för de angivna objekten. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
IPropertyCmdletProvider
Gränssnittet System.Management.Automation.Provider.Ipropertycmdletprovider definierar en egenskaps-Windows PowerShell-provider som utför åtgärder på egenskaperna för objekt i datalagret. I följande tabell visas de cmdlets som exponeras av det här gränssnittet.
Anteckning
Parametern Path
på dessa cmdlets anger en sökväg till ett objekt i stället för att identifiera en egenskap.
Cmdlet | Definition |
---|---|
Clear-ItemProperty |
Anger egenskaperna för de angivna objekten till värdet "rensa". Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
Get-ItemProperty |
Hämtar egenskaper från de angivna objekten och strömmar de resulterande objekten. |
Set-ItemProperty |
Anger egenskaper för de angivna objekten med de angivna värdena. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
IDynamicPropertyCmdletProvider
Gränssnittet System.Management.Automation.Provider.Idynamicpropertycmdletprovider, härlett från System.Management.Automation.Provider.Ipropertycmdletprovider,definierar en provider som anger dynamiska parametrar för de cmdlets som stöds. Den här typen av provider hanterar åtgärder för vilka egenskaper kan definieras vid körning, till exempel en ny egenskapsåtgärd. Sådana åtgärder är inte möjliga för objekt som har statiskt definierade egenskaper. I följande tabell visas de cmdlets som exponeras av det här gränssnittet.
Cmdlet | Definition |
---|---|
Copy-ItemProperty |
Kopierar en egenskap från det angivna objektet till ett annat objekt. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
Move-ItemProperty |
Flyttar en egenskap från det angivna objektet till ett annat objekt. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
New-ItemProperty |
Skapar en egenskap för de angivna objekten och strömmar de resulterande objekten. |
Remove-ItemProperty |
Tar bort en egenskap för de angivna objekten. |
Rename-ItemProperty |
Byter namn på en egenskap för de angivna objekten. Denna cmdlet skickar inte ett utdataobjekt via pipelinen såvida inte PassThru dess parameter har angetts. |
ISecurityDescriptorCmdletProvider
Gränssnittet System.Management.Automation.Provider.Isecuritydescriptorcmdletprovider lägger till säkerhetsbeskrivningsfunktioner till en provider. Med det här gränssnittet kan användaren hämta och ange säkerhetsbeskrivningsinformation för ett objekt i datalagret. I följande tabell visas de cmdlets som exponeras av det här gränssnittet.
Cmdlet | Definition |
---|---|
Get-Acl |
Hämtar informationen i en åtkomstkontrollista (ACL), som är en del av en säkerhetsbeskrivning som används för att skydda operativsystemresurser, till exempel en fil eller ett objekt. |
Set-Acl |
Anger informationen för en ACL. Det är i form av en instans av System.Security.Accesscontrol.Objectsecurity på de objekt som är avsedda för den angivna sökvägen. Denna cmdlet kan ange information om filer, nycklar och undernycklar i registret eller andra providerobjekt om Windows PowerShell-providern stöder inställningen av säkerhetsinformation. |
Se även
Skapa Windows PowerShell providers
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för