Dela via


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 du kan använda för att komma åt de olika typerna av datalager.

Leverantör Enheter OutputType
Alias Alias: System.Management.Automation.AliasInfo
Certifikat Cert: Microsoft.PowerShell.Commands.X509StoreLocation
System.Security.Cryptography.X509Certificates.X509Certificate2
Miljö Env: System.Collections.DictionaryEntry
Filsystem C: (*) System.IO.FileInfo
System.IO.DirectoryInfo
Funktion Funktion: System.Management.Automation.FunctionInfo
Register HKLM: HKCU: Microsoft.Win32.RegistryKey
Variabel Variabel: System.Management.Automation.PSVariable
WSMan WSMan: Microsoft.WSMan.Management.WSManConfigContainerElement

(*) 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

Anteckning

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

Sökvägs-cmdletar

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.

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 den stöder.

Enheten visas i standardvyn för 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\

Om något element i det fullständigt kvalificerade namnet innehåller blanksteg måste du omge namnet med 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 lista 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 egenskapen Home 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 leverantörens hemkatalog. Om providern inte har en startplats angivet 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: 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, slutar 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