Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Providernamn
Funktion
Drives
Function:
Capabilities
ShouldProcess
Kort beskrivning
Ger åtkomst till de funktioner som definierats i PowerShell.
Detaljerad beskrivning
Med PowerShell-funktionsprovidern kan du hämta, lägga till, ändra, rensa och ta bort funktionerna och filtren i PowerShell.
En funktion är ett namngivet kodblock som utför en åtgärd. När du skriver funktionsnamnet körs koden i funktionen. Ett filter är ett namngivet kodblock som upprättar villkor för en åtgärd. Du kan skriva namnet på filtret i stället för villkoret, till exempel i ett Where-Object kommando.
Funktionsenheten är ett platt namnområde som endast innehåller funktions- och filterobjekten. Varken funktioner eller filter har underordnade objekt.
Funktionsprovidern stöder följande cmdletar, som beskrivs i den här artikeln.
Typer som exponeras av den här providern
Varje funktion är en instans av klassen System.Management.Automation.FunctionInfo . Varje filter är en instans av klassen System.Management.Automation.FilterInfo .
Navigera i funktionsenheten
              Funktionsprovidern exponerar sitt datalager på Function: enheten. Om du vill arbeta med funktioner kan du ändra din plats till Function: enheten (Set-Location Function:). Eller så kan du arbeta från en annan PowerShell-enhet. Om du vill referera till en funktion från en annan plats använder du enhetsnamnet (Function:) i sökvägen.
Set-Location Function:
Om du vill återgå till en filsystemenhet skriver du enhetsnamnet. Skriv till exempel:
Set-Location C:
Du kan också arbeta med funktionsprovidern  från andra PowerShell-enheter. Om du vill referera till en funktion från en annan plats använder du enhetsnamnet Function: i sökvägen.
Kommentar
PowerShell använder alias för att ge dig ett välbekant sätt att arbeta med providersökvägar. Kommandon som dir och ls är nu alias för Get-ChildItem, cd är ett alias för Set-Location och pwd är ett alias för Get-Location.
Hämta funktioner
Det här kommandot hämtar listan över alla funktioner i den aktuella sessionen. Du kan använda det här kommandot från valfri PowerShell-enhet.
Get-ChildItem -Path Function:
Funktionsprovidern har inga containrar, så kommandot ovan har samma effekt när det används med Get-ChildItem.
Get-ChildItem -Path Function:
Du kan hämta en funktions definition genom att komma åt egenskapen Definition enligt nedan.
(Get-Item -Path Function:more).Definition
Du kan också hämta en funktions definition med dess providersökväg som föregås av dollartecknet ($).
$Function:more
Om du vill hämta definitionen för en funktion som har ett bindestreck (-) i namnet omsluter du värdet efter dollartecknet i klammerparenteser.
${Function:Clear-Host}
Hämta valda funktioner
Det här kommandot hämtar man funktionen från Function: enheten. Den använder cmdleten Get-Item för att hämta funktionen. Pipelineoperatorn (|) skickar resultatet till Format-Table. Parametern -Wrap dirigerar text som inte får plats på raden till nästa rad. Parametern -AutoSize ändrar storlek på tabellkolumnerna så att den passar texten.
Get-Item -Path man | Format-Table -Wrap -AutoSize
Arbeta med sökvägar för funktionsprovider
Båda dessa kommandon hämtar funktionen med namnet C:. Det första kommandot kan användas på valfri enhet. Det andra kommandot används i Function: enheten. Eftersom namnet slutar i ett kolon, vilket är syntaxen för en enhet, måste du kvalificera sökvägen med enhetsnamnet. 
              Function: I enheten kan du använda båda formaten. I det andra kommandot representerar punkten (.) den aktuella platsen.
PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:
Skapa en funktion
Det här kommandot använder cmdleten New-Item för att skapa en funktion med namnet Win32:.
Uttrycket i klammerparenteser är skriptblocket som representeras av funktionsnamnet.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
Scope
Precis som variabler tillhör funktioner ett specifikt omfång. När du skapar en funktion är den endast tillgänglig i omfånget där den skapades. Om du vill göra en funktion tillgänglig använder du en omfångsmodifierare när du skapar funktionen. Mer information finns i about_Scopes.
I följande exempel används Global: omfångsmodifierare för att skapa en funktion i det globala omfånget.
function New-Function {
    param(
        [string] $Name,
        [scriptblock] $Script
    )
    $lp = "Function:\Global:$($Name)"
    Set-Item -LiteralPath $lp -Value $Script -PassThru -Force
}
New-Function -Name 'Win32:' -Script { Set-Location C:\Windows\System32 }
Utan Global: omfångsmodifierare skapas funktionen i det lokala omfånget. När New-Function avslutar den nyligen skapade funktionen skulle inte längre finnas.
Ta bort en funktion
Det här kommandot tar more bort funktionen från den aktuella sessionen.
Remove-Item Function:more
Ändra en funktion
Det här kommandot använder cmdleten Set-Itemprompt för att ändra funktionen så att den visar tiden före sökvägen.
Set-Item -Path Function:prompt -Value {
  'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
  }
Byt namn på en funktion
Det här kommandot använder cmdleten Rename-Item för att ändra namnet på help funktionen till gh.
Rename-Item -Path Function:help -NewName gh
Kopiera en funktion
Det här kommandot kopierar prompt funktionen till oldPromptoch skapar effektivt ett nytt namn för skriptblocket som är associerat med promptfunktionen.
Du kan använda detta för att spara den ursprungliga promptfunktionen om du planerar att ändra den.
Egenskapen Alternativ för den nya funktionen har värdet None. Om du vill ändra värdet för egenskapen Alternativ använder du Set-Item.
Copy-Item -Path Function:prompt -Destination Function:oldPrompt
Dynamiska parametrar
Dynamiska parametrar är cmdlet-parametrar som läggs till av en PowerShell-provider och är endast tillgängliga när cmdleten används på den provideraktiverade enheten.
Alternativ <[System.Management.Automation.ScopedItemOptions]>
Avgör värdet för egenskapen Alternativ för en funktion.
- 
              None: Inga alternativ.Noneanvänds som standard.
- 
              Constant: Det går inte att ta bort funktionen och dess egenskaper kan inte ändras.Constantär endast tillgängligt när du skapar en funktion. Du kan inte ändra alternativet för en befintlig funktion tillConstant.
- 
              Private: Funktionen visas endast i det aktuella omfånget
- (inte i underordnade omfång).
- 
              ReadOnly: Funktionens egenskaper kan inte ändras förutom med hjälp av parametern-Force. Du kan användaRemove-Itemför att ta bort funktionen.
- 
              AllScope: Funktionen kopieras till alla nya omfång som skapas.
Cmdletar stöds
Använda pipelinen
Provider-cmdletar accepterar pipelineindata. Du kan använda pipelinen för att förenkla uppgiften genom att skicka providerdata från en cmdlet till en annan provider-cmdlet. Mer information om hur du använder pipelinen med provider-cmdletar finns i cmdlet-referenserna i den här artikeln.
Få hjälp
Från och med Windows PowerShell 3.0 kan du få anpassade hjälpavsnitt för provider-cmdletar som förklarar hur dessa cmdletar beter sig på en filsystemenhet.
Om du vill få hjälpavsnitt som är anpassade för filsystemenheten kör du ett Get-Help-kommando på en filsystemenhet eller använder parametern -PathGet-Help för att ange en filsystemenhet.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Function: