about_Providers

Korte beschrijving

Beschrijft hoe PowerShell-providers toegang bieden tot gegevens en onderdelen die anders niet eenvoudig toegankelijk zouden zijn via 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 gegevensopslag voor eenvoudigere weergave en beheer. De gegevens worden weergegeven in een station en u hebt toegang tot de gegevens in een pad zoals u zou doen op een harde schijf. U kunt een van de ingebouwde cmdlets die de provider ondersteunt, gebruiken om de gegevens in het providerstation te beheren. 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 met de providergegevens gebruikt.

Ingebouwde providers

PowerShell bevat een set ingebouwde providers die u kunt gebruiken voor toegang tot de verschillende typen gegevensopslag.

Provider Station(s) OutputType
Alias Alias: System.Management.Automation.AliasInfo
Certificaat Cert: Microsoft.PowerShell.Commands.X509StoreLocation
System.Security.Cryptography.X509Certificates.X509Certificate2
Omgeving Env: System.Collections.DictionaryEntry
Bestandssysteem C: (*) System.Io.FileInfo
System.IO.DirectoryInfo
Functie Functie: System.Management.Automation.FunctionInfo
Register HKLM: HKCU: Microsoft.Win32.RegistryKey
Variabele Variabele: System.Management.Automation.PSVariable
WSMan WSMan: Microsoft.WSMan.Management.WSManConfigContainerElement

(*) De FileSystem-stations variëren per systeem.

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

Get-PSProvider

Notitie

De providers Certificaat**, Register** en WSMan 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 zijn geladen door andere modules.

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 ook de Remove-PSDrive cmdlet gebruiken om een station uit de huidige sessie te verwijderen. Deze gegevens op het station worden niet beïnvloed, maar het station is niet langer beschikbaar in die sessie.

Providers weergeven

Als u wilt weergeven van de PowerShell-providers op uw computer, 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 beschikbaar worden gemaakt door elke provider. U kunt dezelfde cmdlets op dezelfde manier gebruiken om de verschillende typen gegevens te beheren die providers beschikbaar maken. Nadat u hebt geleerd om de gegevens van één provider te beheren, kunt u dezelfde procedures gebruiken met de gegevens van elke provider.

De cmdlet New-Item maakt bijvoorbeeld een nieuw item. In het C: station dat wordt ondersteund door de FileSystem-provider , kunt u gebruiken om New-Item een nieuw bestand of nieuwe map te maken. In de stations die worden ondersteund door de registerprovider , kunt u gebruiken om New-Item een nieuwe registersleutel te maken. In het Alias: station kunt u gebruiken om New-Item een nieuwe alias te 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 deze de gegevens op een vertrouwde en consistente manier beschikbaar maakt. Het model voor gegevenspresentatie is een bestandssysteemstation.

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

Het station wordt weergegeven in de standaardweergave Get-PSProvider van de cmdlet, maar u kunt informatie krijgen over het providerstation met behulp van de Get-PSDrive cmdlet . Als u bijvoorbeeld alle eigenschappen van het station Functie: wilt op halen, typt u:

Get-PSDrive Function | Format-List *

U kunt de gegevens in een providerstation weergeven en verplaatsen, 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 station Alias: wilt weergeven, typt u:

Get-Item alias:

U kunt de gegevens op elk station van een ander station weergeven en beheren door de naam van het station op te geven in het pad. Bijvoorbeeld, om weer te geven van de HKLM\Software registersleutel in de HKLM: station vanaf een ander station, typt u:

Get-ChildItem HKLM:\SOFTWARE\

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

Set-Location cert:

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

Get-ChildItem

Hiërarchische gegevens verplaatsen

U kunt zich via een providerstation verplaatsen, net zoals bij 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 registersleutel HKLM\Software, typt u 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 dat spaties bevat.

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

U kunt ook relatieve verwijzingen naar locaties gebruiken. Een punt (.) vertegenwoordigt de huidige locatie. Bijvoorbeeld, als u zich in de HKLM:\Software\Microsoft registersleutel en u wilt de register subsleutels in HKLM:\Software\Microsoft\PowerShell de sleutel, 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 punten () 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>

Provider Home

Providers hebben ook een startlocatie . Deze locatie wordt gedeeld door alle door PSDrives de provider. Deze kan worden opgehaald door de eigenschap Start van de provider te bekijken.

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

De FileSystem-provider is de enige provider die een standaardwaarde voor Start heeft. Dit is dezelfde waarde als $Home. Zie voor meer informatie about_Automatic_Variables.

U kunt de basismap voor een provider voor de huidige sessie instellen 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 startlocatie heeft ingesteld, wordt er een foutmelding 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 aan een cmdlet worden toegevoegd. 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 cmdlets en Get-ChildItem . U kunt deze parameter alleen gebruiken wanneer u of Get-Item Get-ChildItem in het station Cert: .

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

Get-Help <provider-name>

Bijvoorbeeld:

Get-Help certificate

Learning over providers

Hoewel alle providergegevens in stations worden weergegeven en u dezelfde methoden gebruikt om ze te verwerken, is er geen overeenkomst meer. De gegevensopslag die de provider beschikbaar maakt, kan net zo variëren als Active Directory-locaties en Microsoft Exchange Server postvakken.

Voor informatie over afzonderlijke PowerShell-providers typt u:

Get-Help <ProviderName>

Bijvoorbeeld:

Get-Help registry

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

Get-Help * -Category Provider

Zie ook