Dela via


Om 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 Microsoft .NET Framework-baserade program som gör data i ett specialiserat datalager tillgängliga i PowerShell så att du kan visa och hantera dem.

De data som en provider exponerar 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. Det här är parametrar som endast är tillgängliga när du använder cmdleten med providerdata.

Inbyggda leverantörer

PowerShell innehåller en uppsättning inbyggda leverantörer som du kan använda för att komma åt de olika typerna av datalager.

Leverantör Enhet Datalager
Alias Alias: PowerShell-alias
Certifikat Cert: x509-certifikat för digitala signaturer
Miljö Env: Windows-miljövariabler
Filsystem (*) Filsystemenheter, kataloger och filer
Funktion Funktion: PowerShell-funktioner
Register HKLM:, HKCU: Windows-register
Variabel Variabel: PowerShell-variabler
WSMan WSMan: WS-Management konfigurationsinformation

(*) FileSystem-enheterna varierar på varje system.

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

Installera och ta bort leverantörer

PowerShell-leverantörer levereras till dig i PowerShell-snapin-moduler, som är .NET Framework-baserade program som kompileras till .dll filer. Snapin-modulerna kan innehålla providers och cmdletar.

Innan du använder providerfunktionerna måste du installera snapin-modulen och sedan lägga till den i PowerShell-sessionen. Mer information finns i about_PSSnapins.

Du kan inte avinstallera en provider, även om du kan ta bort PowerShell-snapin-modulen för providern från den aktuella sessionen. Om du gör det tar du bort allt innehåll i snapin-modulen, inklusive dess cmdletar.

Om du vill ta bort en provider från den aktuella sessionen använder du cmdleten Remove-PSSnapin . Den här cmdleten avinstallerar inte providern, men den 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-providrar 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örerna exponerar. När du har lärt dig att hantera data för en provider kan du använda samma procedurer med data från valfri leverantör.

Cmdleten New-Item skapar till exempel 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. På enheten Alias: 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 leverantör är att den exponerar sina data på ett välbekant och konsekvent sätt. Modellen för datapresentation är en filsystemenhet.

Om du vill använda data som leverantören exponerar kan du visa dem, gå igenom dem och ändra dem som om de vore data på en hårddisk. Därför är den viktigaste informationen om en provider namnet på den enhet som den 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 Function: 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 cmdletarna Get-Item eller Get-ChildItem. Skriv enhetsnamnet följt av ett kolon (:). Om du till exempel vill visa innehållet på enheten Alias: 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 registernyckeln HKLM\Software i HKLM: enhet från en annan enhet skriver du:

Get-ChildItem HKLM:\SOFTWARE\

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

Set-Location cert:

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

Get-ChildItem

Gå igenom hierarkiska data

Du kan gå igenom en providerenhet precis som en hårddisk. Om data är ordnade 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\

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 nyckeln HKLM:\Software\Microsoft\PowerShell skriver du följande kommando:

Get-ChildItem .\PowerShell

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 egenskapen Home för providern.

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

FileSystem-providern är den enda providern som har ett standardvärde för Start. Det är samma värde som $Home se 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 leverantörens hemkatalog. Om providern inte har en startplats angivet visas ett fel.

Cert:\> Set-Location ~
Set-Location : Home location for this provider is not 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: till 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>

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 vara lika varierande som Active Directory-platser och Microsoft Exchange Server postlådor.

Om du vill ha information om enskilda PowerShell-providrar skriver du:

Get-Help <ProviderName>

Exempel:

Get-Help registry

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

Get-Help * -Category Provider

Se även

about_Locations

about_Path_Syntax