about_Providers

Kort beskrivning

Beskriver hur PowerShell-leverantörer ger åtkomst till data och komponenter som annars inte skulle vara lättillgängliga på kommandoraden. Data presenteras i ett konsekvent format som liknar en filsystemenhet.

Lång beskrivning

PowerShell-leverantörer är .NET-program som ger åtkomst till specialiserade datalager för enklare visning och hantering. Data visas på en enhet och du kommer åt data i en sökväg som på en hårddisk. Du kan använda någon av de inbyggda cmdletar som providern stöder för att hantera data på providerenheten. Och du kan använda anpassade cmdletar som är särskilt utformade för data.

Leverantörerna kan också lägga till dynamiska parametrar i de inbyggda cmdletarna. Dessa parametrar är bara tillgängliga när du använder cmdleten med providerdata.

Inbyggda leverantörer

PowerShell innehåller en uppsättning inbyggda leverantörer som ger åtkomst till olika typer av objekt.

  • Aliasprovider
    • Bilresa- Alias:
    • Objekttyper – System.Management.Automation.AliasInfo
  • Certifikatprovider
    • Bilresa- Cert:
    • Objekttyper – Microsoft.PowerShell.Commands.X509StoreLocation, System.Security.Cryptography.X509Certificates.X509Certificate2
  • Miljöprovider
    • Bilresa- Env:
    • Objekttyper – System.Collections.DictionaryEntry
  • FileSystem-provider
    • Enhet – C: och annat beroende på maskinvara
    • Objekttyper – System.IO.FileInfo, System.IO.DirectoryInfo
  • Funktionsprovider
    • Bilresa- Function:
    • Objekttyper – System.Management.Automation.FunctionInfo
  • Registerprovider
    • Enhet - HKLM:, HKCU:
    • Objekttyper – Microsoft.Win32.RegistryKey
  • Variabelprovider
    • Bilresa- Variable:
    • Objekttyper – System.Management.Automation.PSVariable
  • WSMan-provider
    • Bilresa- WSMan:
    • Objekttyper – Microsoft.WSMan.Management.WSManConfigContainerElement

Du kan också skapa egna PowerShell-leverantörer och du kan installera leverantörer som andra utvecklar. Om du vill visa en lista över de leverantörer som är tillgängliga i sessionen skriver du:

Get-PSProvider

Kommentar

Certifikat -, register- och WSMan-leverantörerna är endast tillgängliga på Windows-plattformen.

Installera och ta bort leverantörer

Leverantörer installeras vanligtvis via PowerShell-moduler. När du importerar modulen läses providern in i sessionen. Du kan inte avinstallera de inbyggda leverantörerna. Du kan avinstallera leverantörer som läses in av andra moduler.

Du kan ta bort en provider från den aktuella sessionen med hjälp av cmdleten Remove-Module . Den här cmdleten avinstallerar inte providern, men gör providern otillgänglig i sessionen.

Du kan också använda cmdleten Remove-PSDrive för att ta bort valfri enhet från den aktuella sessionen. Dessa data på enheten påverkas inte, men enheten är inte längre tillgänglig i den sessionen.

Visa providrar

Om du vill visa PowerShell-leverantörerna på datorn skriver du:

Get-PSProvider

Utdata visar de inbyggda leverantörerna och de leverantörer som du lade till i sessionen.

Provider-cmdletarna

Följande cmdletar är utformade för att fungera med data som exponeras av alla leverantörer. Du kan använda samma cmdletar på samma sätt för att hantera de olika typer av data som leverantörer exponerar. När du har lärt dig att hantera data från en provider kan du använda samma procedurer med data från valfri leverantör.

Till exempel skapar cmdleten New-Item ett nytt objekt. På den C: enhet som stöds av FileSystem-providern kan du använda New-Item för att skapa en ny fil eller mapp. På de enheter som stöds av registerprovidern kan du använda New-Item för att skapa en ny registernyckel. Alias: På enheten kan du använda New-Item för att skapa ett nytt alias.

Om du vill ha detaljerad information om någon av följande cmdletar skriver du:

Get-Help <cmdlet-name> -Detailed

ChildItem-cmdletar

Innehålls-cmdletar

Objekt-cmdletar

ItemProperty-cmdletar

Plats-cmdletar

Cmdletar för sökväg

PSDrive-cmdletar

PSProvider-cmdletar

Visa providerdata

Den främsta fördelen med en provider är att den exponerar sina data på ett välbekant och konsekvent sätt. Modellen för datapresentation är en filsystemenhet.

Med providern kan du visa, navigera och ändra objekt i datalagret som om de vore data i ett filsystem. Datalagret nås med namnet på den enhet som det stöder.

Enheten visas i standardvisningen av cmdleten Get-PSProvider , men du kan få information om providerenheten med hjälp av cmdleten Get-PSDrive . Om du till exempel vill hämta alla egenskaper för enheten Funktion: skriver du:

Get-PSDrive Function | Format-List *

Du kan visa och gå igenom data på en providerenhet precis som på en filsystemenhet.

Om du vill visa innehållet på en providerenhet använder du Get-Item cmdletarna eller Get-ChildItem . Skriv enhetsnamnet följt av ett kolon (:). Om du till exempel vill visa innehållet på Alias: enheten skriver du:

Get-Item alias:

Du kan visa och hantera data på valfri enhet från en annan enhet genom att inkludera enhetsnamnet i sökvägen. Om du till exempel vill visa HKLM\Software registernyckeln HKLM: på enheten från en annan enhet skriver du:

Get-ChildItem HKLM:\SOFTWARE\

Om du vill öppna enheten använder du cmdleten Set-Location . Kom ihåg kolonet när du anger enhetssökvägen. Om du till exempel vill ändra din plats till rotkatalogen på Cert: enheten skriver du:

Set-Location cert:

Om du sedan vill visa innehållet på Cert: enheten skriver du:

Get-ChildItem

Gå igenom hierarkiska data

Du kan gå igenom en providerenhet precis som en hårddisk. Om data ordnas i en hierarki med objekt i objekt använder du ett omvänt snedstreck (\) för att ange ett underordnat objekt. Använd följande format:

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

Om du till exempel vill ändra din plats till registernyckeln HKLM\Software skriver du ett Set-Location kommando, till exempel:

Set-Location HKLM:\SOFTWARE\

Om något element i det fullständigt kvalificerade namnet innehåller blanksteg måste du omge namnet inom dubbla citattecken ("). I följande exempel visas en fullständigt kvalificerad sökväg som innehåller blanksteg.

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

Du kan också använda relativa referenser till platser. En punkt (.) representerar den aktuella platsen. Om du till exempel är i registernyckeln HKLM:\Software\Microsoft och vill visa registerundernycklarna i HKLM:\Software\Microsoft\PowerShell nyckeln skriver du följande kommando:

Get-ChildItem .\PowerShell

Dubbelpunkter (..) refererar också till katalogen eller containern direkt ovanför din aktuella plats. Du kan använda dubbla punkter (..) för att navigera genom en providerhierarki.

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

Providerns startsida

Leverantörer har också en hemplats . Den här platsen delas av alla PSDrives som backas upp av providern. Den kan hämtas genom att visa hemegenskapen för providern.

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

FileSystem-providern är den enda providern som har ett standardvärde för Start. Det är samma värde som $HOME. Mer information finns i about_Automatic_Variables.

Du kan ange hemkatalogen för en provider för den aktuella sessionen med hjälp av dess egenskap.

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

Tecknet ~ kan användas för att representera providerns hemkatalog. Om providern inte har angett någon startplats visas ett fel.

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
...

Hitta dynamiska parametrar

Dynamiska parametrar är cmdlet-parametrar som läggs till i en cmdlet av en provider. Dessa parametrar är endast tillgängliga när cmdleten används med providern som lade till dem.

Enheten lägger till exempel Cert: parametern CodeSigningCert till Get-Item cmdletarna och Get-ChildItem . Du kan bara använda den här parametern när du använder Get-Item eller Get-ChildItemCert: enheten.

En lista över de dynamiska parametrar som en provider stöder finns i hjälpfilen för providern. Ange:

Get-Help <provider-name>

Till exempel:

Get-Help certificate

Lär dig mer om leverantörer

Även om alla providerdata visas på enheter och du använder samma metoder för att gå igenom dem, stoppas likheten där. De datalager som providern exponerar kan varieras lika mycket som Active Directory-platser och Microsoft Exchange Server-postlådor.

Om du vill ha information om enskilda PowerShell-leverantörer skriver du:

Get-Help <ProviderName>

Till exempel:

Get-Help registry

Om du vill ha en lista över hjälpavsnitt om leverantörerna skriver du:

Get-Help * -Category Provider

Se även