about_Function_Provider
Providernaam
Functie
Aandrijfeenheden
Function:
Functies
ShouldProcess
Korte beschrijving
Biedt toegang tot de functies die zijn gedefinieerd in PowerShell.
Gedetailleerde beschrijving
Met de PowerShell-functieprovider kunt u de functies en filters in PowerShell ophalen, toevoegen, wijzigen, wissen en verwijderen.
Een functie is een benoemd codeblok waarmee een actie wordt uitgevoerd. Wanneer u de functienaam typt, wordt de code in de functie uitgevoerd. Een filter is een benoemd codeblok waarmee voorwaarden voor een actie worden vastgesteld. U kunt de naam van het filter in plaats van de voorwaarde typen, zoals in een Where-Object
opdracht.
Het functiestation is een platte naamruimte die alleen de functie- en filterobjecten bevat. Functies en filters hebben geen onderliggende items.
De functieprovider ondersteunt de volgende cmdlets, die in dit artikel worden behandeld.
Typen die door deze provider worden weergegeven
Elke functie is een exemplaar van de klasse System.Management.Automation.FunctionInfo . Elk filter is een exemplaar van de klasse System.Management.Automation.FilterInfo .
Navigeren op het functiestation
De functieprovider maakt het gegevensarchief beschikbaar in het Function:
station. Als u met functies wilt werken, kunt u uw locatie wijzigen in het Function:
station (Set-Location Function:
). U kunt ook werken vanaf een ander PowerShell-station. Als u wilt verwijzen naar een functie vanaf een andere locatie, gebruikt u de naam van het station (Function:
) in het pad.
Set-Location Function:
Als u wilt terugkeren naar een bestandssysteemstation, typt u de naam van het station. Typ bijvoorbeeld:
Set-Location C:
U kunt ook met de functieprovider werken vanaf een ander PowerShell-station. Als u wilt verwijzen naar een functie vanaf een andere locatie, gebruikt u de naam Function:
van het station in het pad.
Notitie
PowerShell maakt gebruik van aliassen, zodat u op een vertrouwde manier met providerpaden kunt werken. Opdrachten zoals dir
en ls
zijn nu aliassen voor Get-ChildItem, cd
is een alias voor Set-Location. en pwd
is een alias voor Get-Location.
Functies verkrijgen
Met deze opdracht haalt u de lijst met alle functies in de huidige sessie op. U kunt deze opdracht gebruiken vanaf elk PowerShell-station.
Get-ChildItem -Path Function:
De functieprovider heeft geen containers, dus de bovenstaande opdracht heeft hetzelfde effect wanneer gebruikt met Get-ChildItem
.
Get-ChildItem -Path Function:
U kunt de definitie van een functie ophalen door de eigenschap Definitie te openen, zoals hieronder wordt weergegeven.
(Get-Item -Path function:more).Definition
U kunt ook de definitie van een functie ophalen met behulp van het providerpad, voorafgegaan door het dollarteken ($
).
$function:more
Geselecteerde functies op halen
Met deze opdracht haalt u de man
functie op van het Function:
station. De cmdlet wordt gebruikt Get-Item
om de functie op te halen. De pijplijnoperator (|
) verzendt het resultaat naar Format-Table
. De -Wrap
parameter stuurt tekst die niet op de regel past naar de volgende regel. Met de -Autosize
parameter wordt het formaat van de tabelkolommen aangepast aan de tekst.
Get-Item -Path man | Format-Table -Wrap -Autosize
Werken met functieproviderpaden
Deze opdrachten krijgen beide de functie met de naam c:
. De eerste opdracht kan worden gebruikt in elk station. De tweede opdracht wordt gebruikt in het Function:
station. Omdat de naam eindigt op een dubbele punt, wat de syntaxis voor een station is, moet u het pad kwalificeren met de naam van het station. Binnen het Function:
station kunt u beide indelingen gebruiken. In de tweede opdracht vertegenwoordigt de punt (.
) de huidige locatie.
PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:
Een functie maken
Deze opdracht gebruikt de cmdlet om een functie met de New-Item
naam Win32:
te maken.
De expressie tussen accolades is het scriptblok dat wordt vertegenwoordigd door de functienaam.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
U kunt ook een functie maken door deze te typen op de PowerShell-opdrachtregel. Bijvoorbeeld tpe Function:Win32: {Set-Location C:\Windows\System32}
. Als u zich in het Function:
station bevindt, kunt u de naam van het station weglaten.
Een functie verwijderen
Met deze opdracht verwijdert u de more:
functie uit de huidige sessie.
Remove-Item Function:more:
Een functie wijzigen
Met deze opdracht wordt de Set-Item
cmdlet gebruikt om de prompt
functie te wijzigen, zodat de tijd vóór het pad wordt weergegeven.
Set-Item -Path Function:prompt -Value {
'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
}
De naam van een functie wijzigen
Deze opdracht gebruikt de Rename-Item
cmdlet om de naam van de help
functie te wijzigen in gh
.
Rename-Item -Path Function:help -NewName gh
Een functie kopiëren
Met deze opdracht kopieert u de prompt
functie naar oldPrompt
, waardoor er in feite een nieuwe naam wordt gemaakt voor het scriptblok dat is gekoppeld aan de promptfunctie.
U kunt deze gebruiken om de oorspronkelijke promptfunctie op te slaan als u deze wilt wijzigen.
De eigenschap Options van de nieuwe functie heeft de waarde None
. Als u de waarde van de eigenschap Opties wilt wijzigen, gebruikt u Set-Item
.
Copy-Item -Path Function:prompt -Destination Function:oldPrompt
Dynamische parameters
Dynamische parameters zijn cmdlet-parameters die worden toegevoegd door een PowerShell-provider en die alleen beschikbaar zijn wanneer de cmdlet wordt gebruikt in het station met provider.
Opties <[System.Management.Automation.ScopedItemOptions]>
Bepaalt de waarde van de eigenschap Opties van een functie.
None
: Geen opties.None
is de standaardwaarde.Constant
: de functie kan niet worden verwijderd en de eigenschappen ervan kunnen niet worden gewijzigd.Constant
is alleen beschikbaar wanneer u een functie maakt. U kunt de optie van een bestaande functie niet wijzigen inConstant
.Private
: De functie is alleen zichtbaar in het huidige bereik- (niet in onderliggende bereiken).
ReadOnly
: de eigenschappen van de functie kunnen niet worden gewijzigd, behalve met behulp van de-Force
parameter . U kunt gebruikenRemove-Item
om de functie te verwijderen.AllScope
: De functie wordt gekopieerd naar nieuwe bereiken die worden gemaakt.
Ondersteunde cmdlets
De pijplijn gebruiken
Provider-cmdlets accepteren pijplijninvoer. U kunt de pijplijn gebruiken om de taak te vereenvoudigen door providergegevens van de ene cmdlet naar een andere provider-cmdlet te verzenden. Zie de cmdlet-verwijzingen in dit artikel voor meer informatie over het gebruik van de pijplijn met provider-cmdlets.
Ondersteuning vragen
Vanaf Windows PowerShell 3.0 kunt u aangepaste Help-onderwerpen voor provider-cmdlets krijgen waarin wordt uitgelegd hoe deze cmdlets zich gedragen op een bestandssysteemstation.
Als u de Help-onderwerpen wilt ophalen die zijn aangepast voor het bestandssysteemstation, voert u een Get-Help-opdracht uit op een bestandssysteemstation of gebruikt u de -Path
parameter van Get-Help om een bestandssysteemstation op te geven.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function: