Typen providers

Providers definiëren hun basisfunctionaliteit door te wijzigen hoe de provider-cmdlets, geleverd door PowerShell, hun acties uitvoeren. Providers kunnen bijvoorbeeld de standaardfunctionaliteit van de cmdlet gebruiken of ze kunnen wijzigen hoe die cmdlet werkt bij het ophalen van items uit Get-Item het gegevensopslag. De providerfunctionaliteit die in dit document wordt beschreven, bevat functionaliteit die wordt gedefinieerd door methoden van specifieke providerbasisklassen en -interfaces te overschrijven.

Notitie

Zie Providermogelijkheden voor providerfuncties die vooraf zijn gedefinieerd door PowerShell.

Providers met drive-enabled

Providers met stations ingeschakeld geven de standaardstations op die beschikbaar zijn voor de gebruiker en staan de gebruiker toe stations toe te voegen of te verwijderen. In de meeste gevallen zijn providers met station ingeschakeld omdat ze een standaardstation nodig hebben om toegang te krijgen tot het gegevensopslag. Bij het schrijven van uw eigen provider wilt u echter wel of niet toestaan dat de gebruiker stations maakt en verwijdert.

Als u een provider met station wilt maken, moet uw providerklasse worden afgeleid van de klasse System.Management.Automation.Provider.DriveCmdletProvider of een andere klasse die is afgeleid van die klasse. De klasse DriveCmdletProvider definieert de volgende methoden voor het implementeren van de standaardstations van de provider en de ondersteuning van de New-PSDrive Remove-PSDrive cmdlets en . In de meeste gevallen moet u ter ondersteuning van een provider-cmdlet de methode overschrijven die de PowerShell-engine aanroept om de cmdlet aan te roepen, zoals de methode voor de cmdlet. Desgewenst kunt u een tweede methode, zoals , overschrijven voor het toevoegen van dynamische parameters aan de NewDrive New-PSDrive NewDriveDynamicParameters cmdlet.

  • De methode InitializeDefaultDrives definieert de standaardstations die beschikbaar zijn voor de gebruiker wanneer de provider wordt gebruikt.

  • De methoden NewDrive en NewDriveDynamicParameters definiëren hoe uw provider de New-PSDrive provider-cmdlet ondersteunt. Met deze cmdlet kan de gebruiker stations maken voor toegang tot het gegevensopslag.

  • De methode RemoveDrive definieert hoe uw provider de Remove-PSDrive provider-cmdlet ondersteunt. Met deze cmdlet kan de gebruiker stations uit het gegevensopslag verwijderen.

Providers met item ingeschakeld

Met providers voor item ingeschakeld kan de gebruiker de items in het gegevensopslag downloaden, instellen of verwijderen. Een item is een element van het gegevensopslag dat de gebruiker onafhankelijk kan openen of beheren. Als u een provider met item ingeschakeld wilt maken, moet uw providerklasse worden afgeleid van de klasse System.Management.Automation.Provider.ItemCmdletProvider of een andere klasse die is afgeleid van die klasse.

De klasse ItemCmdletProvider definieert de volgende methoden voor het implementeren van specifieke provider-cmdlets. In de meeste gevallen moet u ter ondersteuning van een provider-cmdlet de methode overschrijven die de PowerShell-engine aanroept om de cmdlet aan te roepen, zoals de methode voor de cmdlet. Desgewenst kunt u een tweede methode, zoals , overschrijven voor het toevoegen van dynamische parameters aan de ClearItem Clear-Item ClearItemDynamicParameters cmdlet.

Naast de methoden die worden gebruikt om provider-cmdlets te implementeren, definieert de klasse ItemCmdletProvider ook de volgende methoden:

  • Met de methode ExpandPath kan de gebruiker jokertekens gebruiken bij het opgeven van het providerpad.

  • IsValidPath wordt gebruikt om te bepalen of een pad syntactisch en semantisch geldig is voor de provider.

Providers met container ingeschakeld

Met providers met container ingeschakeld kan de gebruiker items beheren die containers zijn. Een container is een groep onderliggende items onder een algemeen bovenliggend item. Als u een provider met container wilt maken, moet uw providerklasse worden afgeleid van de klasse System.Management.Automation.Provider.ContainerCmdletProvider of een andere klasse die is afgeleid van die klasse.

Belangrijk

Providers met containertoegang hebben geen toegang tot gegevensopslag die geneste containers bevatten. Als een onderliggend item van een container een andere container is, moet u een provider voor navigatie implementeren.

De klasse ContainerCmdletProvider definieert de volgende methoden voor het implementeren van specifieke provider-cmdlets. In de meeste gevallen moet u ter ondersteuning van een provider-cmdlet de methode overschrijven die de PowerShell-engine aanroept om de cmdlet aan te roepen, zoals de methode voor de cmdlet. Desgewenst kunt u een tweede methode, zoals , overschrijven voor het toevoegen van dynamische parameters aan de CopyItem Copy-Item CopyItemDynamicParameters cmdlet.

Naast de methoden die worden gebruikt om provider-cmdlets te implementeren, definieert de klasse ContainerCmdletProvider ook de volgende methoden:

  • De methode HasChildItems kan worden gebruikt door de providerklasse om te bepalen of een item onderliggende items heeft.

  • De methode ConvertPath kan door de providerklasse worden gebruikt om een nieuw providersspecifieke pad te maken vanaf een opgegeven pad.

Providers met ingeschakelde navigatie bieden de gebruiker de mogelijkheid om items in het gegevensopslag te verplaatsen. Als u een provider voor navigatie wilt maken, moet uw providerklasse zijn afgeleid van de klasse System.Management.Automation.Provider.NavigationCmdletProvider.

De klasse NavigationCmdletProvider definieert de volgende methoden voor het implementeren van specifieke provider-cmdlets. In de meeste gevallen moet u ter ondersteuning van een provider-cmdlet de methode overschrijven die de PowerShell-engine aanroept om de cmdlet aan te roepen, zoals de methode voor de cmdlet. Desgewenst kunt u een tweede methode, zoals , overschrijven voor het toevoegen van dynamische parameters aan de MoveItem Move-Item MoveItemDynamicParameters cmdlet.

  • De methoden MoveItem en MoveItemDynamicParameters definiëren hoe uw provider de Move-Item provider-cmdlet ondersteunt. Met deze cmdlet kan de gebruiker een item van de ene locatie in de store naar een andere locatie verplaatsen.

  • De methode MakePath definieert hoe uw provider de Join-Path provider-cmdlet ondersteunt. Met deze cmdlet kan de gebruiker een bovenliggend en onderliggend padsegment combineren om een provider-intern pad te maken.

Naast de methoden die worden gebruikt om provider-cmdlets te implementeren, definieert de klasse NavigationCmdletProvider ook de volgende methoden:

Providers met inhouds ingeschakeld

Providers met inhoud kunnen de gebruiker toestaan om de inhoud van items in een gegevensopslag te verwijderen, op te halen of in te stellen. Met de bestandssysteemprovider kunt u bijvoorbeeld de inhoud van bestanden in het bestandssysteem leeg maken, downloaden en instellen. Als u een provider met inhoud wilt maken, moet uw providerklasse de methoden van de interface System.Management.Automation.Provider.IContentCmdletProvider implementeren.

De interface IContentCmdletProvider definieert de volgende methoden voor het implementeren van specifieke provider-cmdlets. In de meeste gevallen moet u ter ondersteuning van een provider-cmdlet de methode overschrijven die de PowerShell-engine aanroept om de cmdlet aan te roepen, zoals de methode voor de cmdlet. Desgewenst kunt u een tweede methode, zoals , overschrijven voor het toevoegen van dynamische parameters aan de ClearContent Clear-Content ClearContentDynamicParameters cmdlet.

Providers met eigenschap ingeschakeld

Met providers van eigenschappen kan de gebruiker de eigenschappen van de items in het gegevensopslag beheren. Als u een provider met eigenschapsmogelijkheden wilt maken, moet uw providerklasse de methoden van de interfaces System.Management.Automation.Provider.IPropertyCmdletProvider en System.Management.Automation.Provider.IDynamicPropertyCmdletProvider implementeren. In de meeste gevallen moet u ter ondersteuning van een provider-cmdlet de methode overschrijven die de PowerShell-engine aanroept om de cmdlet aan te roepen, zoals de methode voor de cmdlet Clear-Property, en optioneel kunt u een tweede methode, zoals , overschrijven voor het toevoegen van dynamische parameters aan de ClearProperty ClearPropertyDynamicParameters cmdlet.

De interface IPropertyCmdletProvider definieert de volgende methoden voor het implementeren van specifieke provider-cmdlets:

De interface IDynamicPropertyCmdletProvider definieert de volgende methoden voor het implementeren van specifieke provider-cmdlets:

Zie ook

about_Providers

Een Windows PowerShell-provider schrijven