about_Providers
Korte beschrijving
Hierin wordt beschreven hoe PowerShell-providers toegang bieden tot gegevens en onderdelen die anders niet gemakkelijk 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 gegevensarchieven voor eenvoudigere weergave en beheer. De gegevens worden weergegeven op een station en u opent de gegevens in een pad zoals u op een harde schijf zou doen. 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 gebruikt met de providergegevens.
Ingebouwde providers
PowerShell bevat een set ingebouwde providers die u kunt gebruiken om toegang te krijgen tot de verschillende typen gegevensarchieven.
Provider | Station(en) | 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 bestandssysteemstations verschillen per systeem.
U kunt ook uw eigen PowerShell-providers maken en providers installeren die anderen ontwikkelen. Als u de providers wilt weergeven die beschikbaar zijn in uw sessie, typt u:
Get-PSProvider
Notitie
De providers Certificate, Registry 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 door andere modules zijn geladen.
U kunt een provider uit de huidige sessie verwijderen met behulp van de Remove-Module
cmdlet. Deze cmdlet verwijdert de provider niet, maar zorgt ervoor dat de provider niet beschikbaar is 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 een provider worden weergegeven. U kunt dezelfde cmdlets op dezelfde manier gebruiken om de verschillende typen gegevens te beheren die providers beschikbaar maken. Nadat u hebt geleerd hoe u de gegevens van één provider beheert, kunt u dezelfde procedures gebruiken met de gegevens van elke provider.
De cmdlet maakt bijvoorbeeld New-Item
een nieuw item. In het C:
station dat wordt ondersteund door de bestandssysteemprovider , kunt u gebruiken New-Item
om een nieuw bestand of nieuwe map te maken. In de stations die worden ondersteund door de registerprovider , kunt u gebruiken New-Item
om een nieuwe registersleutel te maken. In het Alias:
station kunt u gebruiken New-Item
om 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
- Clear-ItemProperty
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Rename-ItemProperty
- Set-ItemProperty
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 gegevensarchief bekijken, navigeren en wijzigen alsof het gegevens in een bestandssysteem zijn. Het gegevensarchief is toegankelijk via 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 het station Functie: wilt ophalen, typt u:
Get-PSDrive Function | Format-List *
U kunt de gegevens in een providerstation weergeven en doorlopen, net zoals op een bestandssysteemstation.
Als u de inhoud van een providerstation wilt weergeven, gebruikt u de cmdlets Get-Item of Get-ChildItem. 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 in elk station van een ander station weergeven en beheren door de naam van het station op te geven in het pad. Als u bijvoorbeeld de registersleutel HKLM\Software wilt weergeven in het HKLM:-station van een ander station, typt u:
Get-ChildItem HKLM:\SOFTWARE\
Gebruik de cmdlet Set-Location om het station te openen. Onthoud de dubbele punt wanneer u het pad 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 Certificaat: wilt weergeven, typt u:
Get-ChildItem
Hiërarchische gegevens doorlopen
U kunt zich net als een harde schijf door een providerstation verplaatsen.
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 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 dat spaties bevat.
"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 stippen (..
) 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>
Startpagina van provider
Providers hebben ook een thuislocatie . Deze locatie wordt gedeeld door iedereen PSDrives
die wordt ondersteund door de provider. Deze kan worden opgehaald door de eigenschap Home van de provider weer te geven.
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 Start. Het is dezelfde waarde als $Home
. Zie about_Automatic_Variables voor meer informatie.
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 thuislocatie heeft ingesteld, 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 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 codesigningCert-parameter toe aan de Get-Item
cmdlets en Get-ChildItem
. U kunt deze parameter alleen gebruiken wanneer u Get-Item
of Get-ChildItem
in het Cert:
station gebruikt.
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
Meer informatie over providers
Hoewel alle providergegevens in stations worden weergegeven en u dezelfde methoden gebruikt om deze te doorlopen, stopt de overeenkomst daar. De gegevensarchieven die de provider beschikbaar maakt, kunnen net zo verschillend zijn 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