about_Providers

Korte beschrijving

Hierin wordt beschreven hoe PowerShell-providers toegang bieden tot gegevens en onderdelen die anders niet eenvoudig toegankelijk zouden zijn op de opdrachtregel. De gegevens worden weergegeven in een consistente indeling die lijkt op een bestandssysteemstation.

Lange beschrijving

PowerShell-providers zijn .NET-programma's die toegang bieden tot gespecialiseerde gegevensarchieven voor eenvoudiger weergeven en beheren. De gegevens worden weergegeven op een station en u opent de gegevens in een pad zoals u dat zou doen op een harde schijf. U kunt alle ingebouwde cmdlets gebruiken die de provider ondersteunt voor het beheren van de gegevens in het providerstation. En u kunt aangepaste cmdlets gebruiken die speciaal zijn ontworpen voor de gegevens.

De providers kunnen ook dynamische parameters toevoegen aan de ingebouwde cmdlets. Deze parameters zijn alleen beschikbaar wanneer u de cmdlet gebruikt met de providergegevens.

Ingebouwde providers

PowerShell bevat een set ingebouwde providers die toegang bieden tot verschillende typen objecten.

  • Aliasprovider
    • Station- Alias:
    • Objecttypen - System.Management.Automation.AliasInfo
  • Certificaatprovider
    • Station- Cert:
    • Objecttypen - Microsoft.PowerShell.Commands.X509StoreLocation, System.Security.Cryptography.X509Certificates.X509Certificate2
  • Omgevingsprovider
    • Station- Env:
    • Objecttypen - System.Collections.DictionaryEntry
  • Bestandssysteemprovider
    • Station - C: en andere, afhankelijk van hardware
    • Objecttypen - System.IO.FileInfo, System.IO.DirectoryInfo
  • Functieprovider
    • Station- Function:
    • Objecttypen - System.Management.Automation.FunctionInfo
  • Registerprovider
    • Station - HKLM:, HKCU:
    • Objecttypen - Microsoft.Win32.RegistryKey
  • Variabele provider
    • Station- Variable:
    • Objecttypen - System.Management.Automation.PSVariable
  • WSMan-provider
    • Station- WSMan:
    • Objecttypen - Microsoft.WSMan.Management.WSManConfigContainerElement

U kunt ook uw eigen PowerShell-providers maken en u kunt providers installeren die anderen ontwikkelen. Als u de providers wilt weergeven die beschikbaar zijn in uw sessie, typt u:

Get-PSProvider

Notitie

De certificaat-, register- en WSMan-providers zijn alleen beschikbaar op het Windows-platform.

Providers installeren en verwijderen

Providers worden doorgaans geïnstalleerd via PowerShell-modules. Als u de module importeert, wordt de provider in uw sessie geladen. U kunt de ingebouwde providers niet verwijderen. U kunt providers verwijderen die door andere modules zijn geladen.

U kunt een provider uit de huidige sessie verwijderen met behulp van de Remove-Module cmdlet. Met deze cmdlet wordt de provider niet verwijderd, maar is de provider niet beschikbaar in de sessie.

U kunt de Remove-PSDrive cmdlet ook gebruiken om een station uit de huidige sessie te verwijderen. Deze gegevens op het station worden niet beïnvloed, maar het station is niet meer beschikbaar in die sessie.

Providers weergeven

Als u de PowerShell-providers op uw computer wilt weergeven, typt u:

Get-PSProvider

De uitvoer bevat de ingebouwde providers en de providers die u aan de sessie hebt toegevoegd.

De provider-cmdlets

De volgende cmdlets zijn ontworpen om te werken met de gegevens die door elke provider worden weergegeven. U kunt dezelfde cmdlets op dezelfde manier gebruiken om de verschillende typen gegevens te beheren die providers beschikbaar maken. Nadat u de gegevens van één provider hebt beheerd, kunt u dezelfde procedures gebruiken met de gegevens van elke provider.

Met de New-Item cmdlet wordt bijvoorbeeld een nieuw item gemaakt. In het C: station dat wordt ondersteund door de Bestandssysteemprovider , kunt u een New-Item nieuw bestand of nieuwe map maken. In de stations die worden ondersteund door de registerprovider , kunt u een New-Item nieuwe registersleutel maken. In het Alias: station kunt New-Item u een nieuwe alias maken.

Voor gedetailleerde informatie over een van de volgende cmdlets, typt u:

Get-Help <cmdlet-name> -Detailed

ChildItem-cmdlets

Inhouds-cmdlets

Item-cmdlets

ItemProperty-cmdlets

Locatie-cmdlets

Pad-cmdlets

PSDrive-cmdlets

PSProvider-cmdlets

Providergegevens weergeven

Het belangrijkste voordeel van een provider is dat de gegevens op een vertrouwde en consistente manier worden weergegeven. Het model voor gegevenspresentatie is een bestandssysteemstation.

Met de provider kunt u items in het gegevensarchief weergeven, navigeren en wijzigen alsof het gegevens in een bestandssysteem waren. Het gegevensarchief wordt geopend door de naam van het station dat wordt ondersteund.

Het station wordt vermeld in de standaardweergave van de Get-PSProvider cmdlet, maar u kunt informatie over het providerstation ophalen met behulp van de Get-PSDrive cmdlet. Als u bijvoorbeeld alle eigenschappen van de functie: station wilt ophalen, typt u:

Get-PSDrive Function | Format-List *

U kunt de gegevens in een providerstation bekijken en doorlopen, net zoals op een bestandssysteemstation.

Als u de inhoud van een providerstation wilt weergeven, gebruikt u de Get-Item of Get-ChildItem cmdlets. Typ de naam van het station gevolgd door een dubbele punt (:). Als u bijvoorbeeld de inhoud van het Alias: station wilt weergeven, typt u:

Get-Item alias:

U kunt de gegevens op elk station van een ander station weergeven en beheren door de stationsnaam in het pad op te geven. Als u bijvoorbeeld de HKLM\Software registersleutel in het HKLM: station vanaf een ander station wilt weergeven, typt u:

Get-ChildItem HKLM:\SOFTWARE\

Gebruik de Set-Location cmdlet om het station te openen. Onthoud de dubbele punt wanneer u het stationspad opgeeft. Als u bijvoorbeeld uw locatie wilt wijzigen in de hoofdmap van het Cert: station, typt u:

Set-Location cert:

Als u vervolgens de inhoud van het Cert: station wilt weergeven, typt u:

Get-ChildItem

Navigeren door hiërarchische gegevens

U kunt door een providerstation lopen, net zoals u dat zou doen met een harde schijf. Als de gegevens zijn gerangschikt in een hiërarchie van items binnen items, gebruikt u een backslash (\) om een onderliggend item aan te geven. Gebruik de volgende indeling:

drive:\location\child-location\...

Als u bijvoorbeeld uw locatie wilt wijzigen in de HKLM\Software registersleutel, typt u een Set-Location opdracht, zoals:

Set-Location HKLM:\SOFTWARE\

Als een element in de volledig gekwalificeerde naam spaties bevat, moet u de naam tussen dubbele aanhalingstekens (") plaatsen. In het volgende voorbeeld ziet u een volledig gekwalificeerd pad met spaties.

"C:\Program Files\Internet Explorer\iexplore.exe"

U kunt ook relatieve verwijzingen naar locaties gebruiken. Een punt (.) vertegenwoordigt de huidige locatie. Als u zich bijvoorbeeld in de HKLM:\Software\Microsoft registersleutel bevindt en u de registersubsleutels in de HKLM:\Software\Microsoft\PowerShell sleutel wilt weergeven, typt u de volgende opdracht:

Get-ChildItem .\PowerShell

Dubbele puntjes (..) verwijzen ook naar de map of container direct boven uw huidige locatie. U kunt dubbele puntjes (..) gebruiken om door een providerhiërarchie te navigeren.

PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\> cd ..\..\LanmanWorkstation\Parameters
PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters>

Thuisbasis van provider

Providers hebben ook een thuislocatie . Deze locatie wordt gedeeld door alle PSDrives locaties die worden ondersteund door de provider. Deze kan worden opgehaald door de eigenschap Home van de provider te bekijken.

Get-PSProvider | Format-Table Name, Home
Name        Home
----        ----
Registry
Alias
Environment
FileSystem  C:\Users\username
Function
Variable
Certificate

De bestandssysteemprovider is de enige provider met een standaardwaarde voor Home. Het is dezelfde waarde als $HOME. Zie about_Automatic_Variables voor meer informatie.

U kunt de basismap instellen voor een provider, voor de huidige sessie, met behulp van de eigenschap.

(Get-PSProvider FileSystem).Home = "C:\"

Het ~ teken kan worden gebruikt om de basismap van de provider weer te geven. Als de provider geen locatieset Thuis heeft, wordt er een fout weergegeven.

Cert:\> Set-Location ~
Set-Location : Home location for this provider isn't set. To set the home
location, call "(get-psprovider 'Certificate').Home = 'path'".
At line:1 char:1
+ Set-Location ~
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Set-Location],
                              PSInvalidOperationException
...

Dynamische parameters zoeken

Dynamische parameters zijn cmdlet-parameters die door een provider worden toegevoegd aan een cmdlet. Deze parameters zijn alleen beschikbaar wanneer de cmdlet wordt gebruikt met de provider die ze heeft toegevoegd.

Het station voegt bijvoorbeeld Cert: de parameter CodeSigningCert toe aan de Get-Item en Get-ChildItem cmdlets. U kunt deze parameter alleen gebruiken wanneer u Get-Item of Get-ChildItem in het Cert: station.

Zie het Help-bestand voor de provider voor een lijst met de dynamische parameters die een provider ondersteunt. Type:

Get-Help <provider-name>

Voorbeeld:

Get-Help certificate

Meer informatie over providers

Hoewel alle providergegevens worden weergegeven in stations en u dezelfde methoden gebruikt om ze te doorlopen, stopt de overeenkomst daar. De gegevensarchieven die door de provider worden weergegeven, kunnen zo gevarieerd zijn als Active Directory-locaties en Microsoft Exchange Server-postvakken.

Voor informatie over afzonderlijke PowerShell-providers typt u:

Get-Help <ProviderName>

Voorbeeld:

Get-Help registry

Voor een lijst met Help-onderwerpen over de providers typt u:

Get-Help * -Category Provider

Zie ook