Typer av providers

Leverantörer definierar sina grundläggande funktioner genom att ändra hur provider-cmdletarna, som tillhandahålls av PowerShell, utför sina åtgärder. Leverantörer kan till exempel använda standardfunktionerna i cmdleten eller ändra hur denna cmdlet fungerar när objekt hämtas Get-Item från datalagret. Providerfunktionen som beskrivs i det här dokumentet innehåller funktioner som definieras av överskrivningsmetoder från specifika providerbasklasser och gränssnitt.

Anteckning

Leverantörsfunktioner som är fördefinierade av PowerShell finns i Providerfunktioner.

Enhetsaktiverade providers

Enhetsaktiverade providers anger vilka standardenheter som är tillgängliga för användaren och tillåter att användaren lägger till eller tar bort enheter. I de flesta fall är leverantörer enhetsaktiverade leverantörer eftersom de kräver en standardenhet för att få åtkomst till datalagret. Men när du skriver din egen provider kanske du inte vill tillåta att användaren skapar och tar bort enheter.

Om du vill skapa en enhetsaktiverad provider måste providerklassen härledas från klassen System.Management.Automation.Provider.DriveCmdletProvider eller någon annan klass som härleds från den klassen. Klassen DriveCmdletProvider definierar följande metoder för att implementera standardenheterna för providern och stödja New-PSDrive Remove-PSDrive cmdletarna och . För att stödja en provider-cmdlet måste du i de flesta fall skriva över metoden som PowerShell-motorn anropar för att anropa cmdleten, till exempel metoden för cmdleten, och om du vill kan du skriva över en andra metod, till exempel , för att lägga till dynamiska parametrar i NewDrive New-PSDrive NewDriveDynamicParameters cmdleten.

  • Metoden InitializeDefaultDrives definierar de standardenheter som är tillgängliga för användaren när providern används.

  • Metoderna NewDrive och NewDriveDynamicParameters definierar hur providern stöder New-PSDrive provider-cmdleten. Med den här cmdleten kan användaren skapa enheter för att få åtkomst till datalagret.

  • RemoveDrive-metoden definierar hur providern stöder Remove-PSDrive provider-cmdleten. Med den här cmdleten kan användaren ta bort enheter från datalagret.

Objektaktiverade providers

Med objektaktiverade providers kan användaren hämta, ange eller rensa objekten i datalagret. Ett "objekt" är ett element i datalagret som användaren kan komma åt eller hantera oberoende av varandra. Om du vill skapa en objektaktiverad provider måste providerklassen härledas från klassen System.Management.Automation.Provider.ItemCmdletProvider eller någon annan klass som härleds från den klassen.

Klassen ItemCmdletProvider definierar följande metoder för att implementera specifika provider-cmdlets. För att stödja en provider-cmdlet måste du i de flesta fall skriva över metoden som PowerShell-motorn anropar för att anropa cmdleten, till exempel metoden för cmdleten, och om du vill kan du skriva över en andra metod, till exempel , för att lägga till dynamiska parametrar i ClearItem Clear-Item ClearItemDynamicParameters cmdleten.

  • Metoderna ClearItem och ClearItemDynamicParameters definierar hur providern stöder Clear-Item providerns cmdlet. Med den här cmdleten kan användaren ta bort värdet för ett objekt i datalagret.

  • Metoderna GetItem och GetItemDynamicParameters definierar hur providern stöder Get-Item provider-cmdleten. Med den här cmdleten kan användaren hämta data från datalagret.

  • Metoderna SetItem och SetItemDynamicParameters definierar hur providern stöder Set-Item provider-cmdleten. Med den här cmdleten kan användaren uppdatera värdena för objekt i datalagret.

  • Metoderna InvokeDefaultAction och InvokeDefaultActionDynamicParameters definierar hur providern stöder Invoke-Item provider-cmdleten. Med den här cmdleten kan användaren utföra standardåtgärden som anges av objektet.

  • Metoderna ItemExists och ItemExistsDynamicParameters definierar hur providern stöder Test-Path provider-cmdleten. Med den här cmdleten kan användaren avgöra om alla element i en sökväg finns.

Förutom de metoder som används för att implementera provider-cmdlets definierar klassen ItemCmdletProvider även följande metoder:

  • Med ExpandPath-metoden kan användaren använda jokertecken när providersökvägen anges.

  • IsValidPath används för att avgöra om en sökväg är syntaktiskt och semantiskt giltig för providern.

Containeraktiverade providers

Med containeraktiverade providers kan användaren hantera objekt som är containrar. En container är en grupp med underordnade objekt under ett gemensamt överordnat objekt. Om du vill skapa en containeraktiverad provider måste providerklassen härledas från klassen System.Management.Automation.Provider.ContainerCmdletProvider eller någon annan klass som härleds från den klassen.

Viktigt

Containeraktiverade providers kan inte komma åt datalager som innehåller kapslade containrar. Om ett underobjekt i en container är en annan container måste du implementera en navigeringsaktiverad provider.

Klassen ContainerCmdletProvider definierar följande metoder för att implementera specifika provider-cmdlets. För att stödja en provider-cmdlet måste du i de flesta fall skriva över metoden som PowerShell-motorn anropar för att anropa cmdleten, till exempel metoden för cmdleten, och om du vill kan du skriva över en andra metod, till exempel , för att lägga till dynamiska parametrar i CopyItem Copy-Item CopyItemDynamicParameters cmdleten.

  • Metoderna CopyItem och CopyItemDynamicParameters definierar hur providern stöder Copy-Item providerns cmdlet. Med den här cmdleten kan användaren kopiera ett objekt från en plats till en annan.

  • Metoderna GetChildItems och GetChildItemsDynamicParameters definierar hur providern stöder Get-ChildItem provider-cmdleten. Med den här cmdleten kan användaren hämta underordnade objekt till det överordnade objektet.

  • Metoderna GetChildNames och GetChildNamesDynamicParameters definierar hur providern stöder Get-ChildItem provider-cmdleten om Name dess parameter anges.

  • Metoderna NewItem och NewItemDynamicParameters definierar hur providern stöder New-Item provider-cmdleten. Med den här cmdleten kan användaren skapa nya objekt i datalagret.

  • Metoderna RemoveItem och RemoveItemDynamicParameters definierar hur providern stöder Remove-Item provider-cmdleten. Med den här cmdleten kan användaren ta bort objekt från datalagret.

  • Metoderna RenameItem och RenameItemDynamicParameters definierar hur providern stöder Rename-Item provider-cmdleten. Med den här cmdleten kan användaren byta namn på objekt i datalagret.

Förutom de metoder som används för att implementera provider-cmdlets definierar klassen ContainerCmdletProvider även följande metoder:

  • Metoden HasChildItems kan användas av providerklassen för att avgöra om ett objekt har underordnade objekt.

  • ConvertPath-metoden kan användas av providerklassen för att skapa en ny providerspecifik sökväg från en angiven sökväg.

Med navigeringsaktiverade leverantörer kan användaren flytta objekt i datalagret. Om du vill skapa en navigeringsaktiverad provider måste providerklassen härledas från klassen System.Management.Automation.Provider.NavigationCmdletProvider.

Klassen NavigationCmdletProvider definierar följande metoder för att implementera specifika provider-cmdlets. För att stödja en provider-cmdlet måste du i de flesta fall skriva över metoden som PowerShell-motorn anropar för att anropa cmdleten, till exempel metoden för cmdleten, och om du vill kan du skriva över en andra metod, till exempel , för att lägga till dynamiska parametrar i MoveItem Move-Item MoveItemDynamicParameters cmdleten.

  • Metoderna MoveItem och MoveItemDynamicParameters definierar hur providern stöder Move-Item provider-cmdleten. Med den här cmdleten kan användaren flytta ett objekt från en plats i butiken till en annan plats.

  • MakePath-metoden definierar hur providern stöder Join-Path provider-cmdleten. Med den här cmdleten kan användaren kombinera ett över- och underordnat sökvägssegment för att skapa en intern providersökväg.

Förutom de metoder som används för att implementera provider-cmdlets definierar klassen NavigationCmdletProvider även följande metoder:

  • Metoden GetChildName extraherar namnet på den underordnade noden för en sökväg.

  • Metoden GetParentPath extraherar den överordnade delen av en sökväg.

  • Metoden IsItemContainer avgör om objektet är ett containerobjekt. I det här sammanhanget är en container en grupp med underordnade objekt under ett gemensamt överordnat objekt.

  • Metoden NormalizeRelativePath returnerar en sökväg till ett objekt som är relativt till en angiven bassökväg.

Innehållsaktiverade providers

Innehållsaktiverade providers låter användaren rensa, hämta eller ange innehållet i objekt i ett datalager. Med FileSystem-providern kan du till exempel rensa, hämta och ange innehållet i filer i filsystemet. Om du vill skapa en innehållsaktiverad provider måste providerklassen implementera metoderna för gränssnittet System.Management.Automation.Provider.IContentCmdletProvider.

Gränssnittet IContentCmdletProvider definierar följande metoder för att implementera specifika provider-cmdlets. För att stödja en provider-cmdlet måste du i de flesta fall skriva över metoden som PowerShell-motorn anropar för att anropa cmdleten, till exempel metoden för cmdleten, och om du vill kan du skriva över en andra metod, till exempel , för att lägga till dynamiska parametrar i ClearContent Clear-Content ClearContentDynamicParameters cmdleten.

Egenskapsaktiverade providers

Egenskapsaktiverade providers låter användaren hantera egenskaperna för objekten i datalagret. Om du vill skapa en egenskapsaktiverad provider måste providerklassen implementera metoderna för gränssnitten System.Management.Automation.Provider.IPropertyCmdletProvider och System.Management.Automation.Provider.IDynamicPropertyCmdletProvider. För att stödja en provider-cmdlet måste du i de flesta fall skriva över metoden som PowerShell-motorn anropar för att anropa cmdleten, till exempel metoden för Clear-Property-cmdleten, och om du vill kan du skriva över en andra metod, till exempel , för att lägga till dynamiska parametrar i ClearProperty ClearPropertyDynamicParameters cmdleten.

Gränssnittet IPropertyCmdletProvider definierar följande metoder för att implementera specifika provider-cmdlets:

Gränssnittet IDynamicPropertyCmdletProvider definierar följande metoder för att implementera specifika provider-cmdlets:

  • Metoderna CopyProperty och CopyPropertyDynamicParameters definierar hur providern stöder Copy-ItemProperty provider-cmdleten. Med den här cmdleten kan användaren kopiera en egenskap och dess värde från en plats till en annan.

  • Metoderna MoveProperty och MovePropertyDynamicParameters definierar hur providern stöder Move-ItemProperty provider-cmdleten. Med den här cmdleten kan användaren flytta en egenskap och dess värde från en plats till en annan.

  • Metoderna NewProperty och NewPropertyDynamicParameters definierar hur providern stöder New-ItemProperty provider-cmdleten. Med den här cmdleten kan användaren skapa en ny egenskap och ange dess värde.

  • Metoderna RemoveProperty och RemovePropertyDynamicParameters definierar hur din provider stöder Remove-ItemProperty cmdleten. Med den här cmdleten kan användaren ta bort en egenskap och dess värde.

  • Metoderna RenameProperty och RenamePropertyDynamicParameters definierar hur din provider stöder Rename-ItemProperty cmdleten. Med den här cmdleten kan användaren ändra namnet på en egenskap.

Se även

about_Providers

Skriva en Windows PowerShell-provider