Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met een Windows PowerShell-provider kan elk gegevensarchief als een bestandssysteem worden weergegeven alsof het een gekoppeld station is. Met de ingebouwde registerprovider kunt u bijvoorbeeld door het register navigeren zoals u door het c station van uw computer navigeert. Een provider kan ook de Item cmdlets (bijvoorbeeld Get-Item, Set-Item, enzovoort) overschrijven, zodat de gegevens in uw gegevensarchief kunnen worden behandeld als bestanden en mappen wanneer u door een bestandssysteem navigeert. Zie about_Providersvoor meer informatie over providers en stations en de ingebouwde providers in Windows PowerShell.
Providers en stations
Een provider definieert de logica die wordt gebruikt voor het openen, navigeren en bewerken van een gegevensarchief, terwijl een station een specifiek toegangspunt opgeeft voor een gegevensarchief (of een deel van een gegevensarchief) van het type dat door de provider is gedefinieerd. Met de registerprovider kunt u bijvoorbeeld toegang krijgen tot hives en sleutels in een register, en de HKLM- en HKCU-stations geven de bijbehorende hives in het register op. De HKLM- en HKCU-stations gebruiken beide de registerprovider.
Wanneer u een provider schrijft, kunt u standaardstations opgeven die automatisch worden gemaakt wanneer de provider beschikbaar is. U definieert ook een methode voor het maken van nieuwe stations die gebruikmaken van die provider.
Type of Providers
Er zijn verschillende typen providers, die elk een ander functionaliteitsniveau bieden. Een provider wordt geïmplementeerd als een klasse die is afgeleid van een van de afstammelingen van de klasse System.Management.Automation.SessionStateCategoryCmdletProvider klasse. Zie Provider-typenvoor meer informatie over de verschillende typen providers.
Provider-cmdlets
Providers kunnen methoden implementeren die overeenkomen met cmdlets en aangepast gedrag maken voor die cmdlets wanneer ze worden gebruikt in een station voor die provider. Afhankelijk van het type provider zijn er verschillende sets cmdlets beschikbaar. Zie Provider-cmdletsvoor een volledige lijst met de cmdlets die beschikbaar zijn voor aanpassing in providers.
Providerpaden
Gebruikers navigeren door providerstations zoals bestandssystemen. Daarom verwachten ze dat de syntaxis van paden overeenkomt met de paden die worden gebruikt in bestandssysteemnavigatie. Wanneer een gebruiker een provider-cmdlet uitvoert, geeft deze een pad op naar het item dat moet worden geopend. Het opgegeven pad kan op verschillende manieren worden geïnterpreteerd. Een provider moet een of meer van de volgende padtypen ondersteunen.
Stationsgekwalificeerde paden
Een station gekwalificeerd pad is een combinatie van de itemnaam, de container en subcontainers waarin het item zich bevindt en het Windows PowerShell-station waarmee het item wordt geopend. (Stations worden gedefinieerd door de provider die wordt gebruikt voor toegang tot het gegevensarchief. Dit pad begint met de stationsnaam gevolgd door een dubbele punt (:). Bijvoorbeeld: Get-ChildItem C:
Door provider gekwalificeerde paden
Als u wilt dat de Windows PowerShell-engine uw provider initialiseert en niet-geïnitialiseerd, moet de provider ondersteuning bieden voor een provider gekwalificeerd pad. De gebruiker kan bijvoorbeeld de filesystem-provider initialiseren en niet-geïnitialiseerd omdat het het volgende provider-gekwalificeerde pad definieert: FileSystem::\\uncshare\abc\bar.
Directe paden van provider
Als u externe toegang tot uw Windows PowerShell-provider wilt toestaan, moet de provider een direct pad naar de Windows PowerShell-provider voor de huidige locatie doorgeven. De Windows PowerShell-registerprovider kan bijvoorbeeld \\server\regkeypath gebruiken als een direct pad naar een provider.
Interne providerpaden
Als u wilt toestaan dat de provider-cmdlet toegang heeft tot gegevens met behulp van niet-Windows PowerShell-api's (Application Programming Interfaces), moet uw Windows PowerShell-provider een intern providerpad ondersteunen. Dit pad wordt aangegeven na de '::' in het pad dat door de provider is gekwalificeerd. Het interne pad van de provider voor de Windows PowerShell-provider van het bestandssysteem is bijvoorbeeld \\uncshare\abc\bar.
Cmdlet-parameters overschrijven
Het gedrag van sommige providerspecifieke cmdlets kan worden overschreven door een provider. Zie Provider-cmdlet-parameters voor een lijst met parameters die kunnen worden overschreven en hoe u deze in uw providerklasse kunt overschrijven
Dynamische parameters
Providers kunnen dynamische parameters definiëren die worden toegevoegd aan een provider-cmdlet wanneer de gebruiker een bepaalde waarde opgeeft voor een van de statische parameters van de cmdlet. Een provider doet dit door een of meer dynamische parametermethoden te implementeren. Zie voor een lijst met cmdlet-parameters die kunnen worden gebruikt om dynamische parameter toe te voegen en de methoden die worden gebruikt om ze te implementeren, Provider cmdlet dynamische parameters.
Mogelijkheden van providers
De System.Management.Automation.Provider.ProviderCapabilities opsomming definieert een aantal mogelijkheden die providers kunnen ondersteunen. Deze omvatten de mogelijkheid om jokertekens te gebruiken, items te filteren en ondersteuningstransacties te ondersteunen. Als u mogelijkheden voor een provider wilt opgeven, voeg een lijst met waarden toe van de System.Management.Automation.Provider.ProviderCapabilities opsomming, gecombineerd met een logische OR bewerking, als de eigenschap System.Management.Automation.Provider.CmdletProviderAttribute.ProviderCapabilities* (de tweede parameter van het kenmerk) van het System.Management.Automation.Provider.CmdletProviderAttribute kenmerk voor uw providerklasse. Het volgende kenmerk geeft bijvoorbeeld aan dat de provider ondersteuning biedt voor de System.Management.Automation.Provider.Provider.ProviderCapabilitiesShouldProcess en System.Management.Automation.Provider.ProviderCapabilitiesTransactions capabilities.
[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]
Help voor provider-cmdlets
Wanneer u een provider schrijft, kunt u uw eigen Help implementeren voor de provider-cmdlets die u ondersteunt. Dit omvat één Help-onderwerp voor elke provider-cmdlet of meerdere versies van een Help-onderwerp voor gevallen waarin de provider-cmdlet anders werkt op basis van het gebruik van dynamische parameters. Ter ondersteuning van cmdlet-specifieke hulp van de provider moet uw provider de interface System.Management.Automation.Provider.ICmdletProviderSupportsHelp implementeren.
De Windows PowerShell-engine roept de methode System.Management.Automation.Provider.ICmdletProviderSupportsHelp.GetHelpMaml* methode aan om het Help-onderwerp voor uw provider-cmdlets weer te geven. De engine bevat de naam van de cmdlet die de gebruiker heeft opgegeven bij het uitvoeren van de Get-Help-cmdlet en het huidige pad van de gebruiker.
Het huidige pad is vereist als uw provider verschillende versies van dezelfde provider-cmdlet implementeert voor verschillende stations. De methode moet een tekenreeks retourneren die de XML voor de Help-cmdlet bevat.
De inhoud voor het Help-bestand wordt geschreven met PSMAML XML. Dit is hetzelfde XML-schema dat wordt gebruikt voor het schrijven van Help-inhoud voor zelfstandige cmdlets. Voeg de inhoud van uw aangepaste cmdlet Help toe aan het Help-bestand voor uw provider onder het element CmdletHelpPaths. In het volgende voorbeeld ziet u het element command voor één provider-cmdlet en ziet u hoe u de naam opgeeft van de provider-cmdlet die uw provider gebruikt. Ondersteunt
<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>