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
- Köra-
Alias:
- Objekttyper – System.Management.Automation.AliasInfo
- Köra-
- Certifikatprovider
- Köra-
Cert:
- Objekttyper – Microsoft.PowerShell.Commands.X509StoreLocation, System.Security.Cryptography.X509Certificates.X509Certificate2
- Köra-
- Miljöprovider
- Köra-
Env:
- Objekttyper – System.Collections.DictionaryEntry
- Köra-
- FileSystem-provider
- Enhet –
C:
och annat beroende på maskinvara - Objekttyper – System.IO.FileInfo, System.IO.DirectoryInfo
- Enhet –
- Funktionsprovider
- Köra-
Function:
- Objekttyper – System.Management.Automation.FunctionInfo
- Köra-
- Registerprovider
- Enhet -
HKLM:
,HKCU:
- Objekttyper – Microsoft.Win32.RegistryKey
- Enhet -
- Variabelprovider
- Köra-
Variable:
- Objekttyper – System.Management.Automation.PSVariable
- Köra-
- WSMan-provider
- Köra-
WSMan:
- Objekttyper – Microsoft.WSMan.Management.WSManConfigContainerElement
- Köra-
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
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
- Rensa objekt
- Kopiera objekt
- Hämta objekt
- Anropa objekt
- Flytta objekt
- Nytt objekt
- Ta bort objekt
- Byt namn på objekt
- Set-Item
ItemProperty-cmdletar
- Clear-ItemProperty
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Byt namn på ItemProperty
- Set-ItemProperty
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-ChildItem
på Cert:
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