Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Naam van de aanbieder
Functie
Schijven
Function:
Capabilities
ShouldProcess
Korte beschrijving
Biedt toegang tot de functies die zijn gedefinieerd in PowerShell.
Gedetailleerde beschrijving
Met de PowerShell Function-provider 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 naam van de functie 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.
De functie schijf is een platte naamruimte die alleen de functie- en filterobjecten bevat. Functies en filters hebben geen onderliggende items.
De Function-provider 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 door het functiestation
De Function-provider maakt zijn gegevensopslag zichtbaar op de Function: schijf. Als u met functies wilt werken, kunt u uw locatie wijzigen naar de Function:-schijf (Set-Location Function:). U kunt ook werken vanaf een andere PowerShell-drive. Als u vanuit een andere locatie naar een functie wilt verwijzen, gebruik dan de stationsnaam (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 werken met de Function provider vanaf een ander PowerShell-station. Als u wilt verwijzen naar een functie vanaf een andere locatie, gebruikt u de stationsnaam Function: in het pad.
Notitie
PowerShell maakt gebruik van aliassen om u een vertrouwde manier te bieden om met providerpaden te 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 wordt de lijst met alle functies in de huidige sessie weergegeven. 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 deze wordt gebruikt met Get-ChildItem.
Get-ChildItem -Path Function:
U kunt de definitie van een functie ophalen door toegang te krijgen tot de eigenschap Definitie, zoals hieronder wordt weergegeven.
(Get-Item -Path Function:more).Definition
U kunt ook de definitie van een functie ophalen met behulp van het providerpad dat wordt voorafgegaan door het dollarteken ($).
$Function:more
Als u de definitie wilt ophalen voor een functie waarvan de naam een streepje (-) bevat, plaats dan de waarde na het dollarteken tussen accolades.
${Function:Clear-Host}
Geselecteerde functies verkrijgen
Met deze opdracht wordt functie man verkregen van station Function:. De cmdlet Get-Item wordt gebruikt om de functie op te halen. De pijplijnoperator (|) verzendt het resultaat naar Format-Table. De parameter -Wrap stuurt tekst die niet op de regel past naar de volgende regel. Met de parameter -AutoSize wordt de grootte van de tabelkolommen aangepast aan de tekst.
Get-Item -Path man | Format-Table -Wrap -AutoSize
Werken met Functieproviderpaden
Met deze opdrachten worden beide functies met de naam C:verkregen. De eerste opdracht kan worden gebruikt in elke schijf. De tweede opdracht wordt gebruikt in de Function: schijf. Omdat de naam eindigt met een dubbele punt, wat de syntaxis voor een station is, moet u het pad specificeren met de stationsnaam. Binnen de Function: schijf 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
Met deze opdracht wordt de cmdlet New-Item gebruikt om een functie te maken die Win32:heet.
De expressie in accolades is het scriptblok dat wordt vertegenwoordigd door de functienaam.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
Toepassingsgebieden
Net als variabelen behoren functies tot een specifiek bereik. Wanneer u een functie maakt, is deze alleen beschikbaar in het bereik waarin deze is gemaakt. Als u een functie beschikbaar wilt maken, gebruikt u een bereikaanpassingsfunctie wanneer u de functie maakt. Zie about_Scopesvoor meer informatie.
In het volgende voorbeeld wordt de Global:-bereikaanpassing gebruikt om een functie te maken in het globale bereik.
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 }
Zonder de Global: bereikaanpassing wordt de functie gemaakt in het lokale bereik. Wanneer New-Function de zojuist gemaakte functie verlaat, bestaat deze niet meer.
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 deze de tijd vóór het pad weergeeft.
Set-Item -Path Function:prompt -Value {
'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
}
De naam van een functie wijzigen
Met deze opdracht wordt de cmdlet Rename-Item gebruikt om de naam van de functie help te wijzigen in gh.
Rename-Item -Path Function:help -NewName gh
Een functie kopiëren
Met deze opdracht wordt de prompt functie gekopieerd naar oldPrompt, waardoor er effectief een nieuwe naam wordt gemaakt voor het scriptblok dat is gekoppeld aan de promptfunctie.
U kunt deze functie gebruiken om de oorspronkelijke promptfunctie op te slaan als u deze wilt wijzigen.
De eigenschap Options van de nieuwe functie heeft een waarde van None. Als u de waarde van de eigenschap Options 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 zijn alleen beschikbaar wanneer de cmdlet wordt gebruikt in het door de provider ingeschakelde station.
Opties <[System.Management.Automation.ScopedItemOptions]>
Bepaalt de waarde van de eigenschap Options van een functie.
-
None: Geen opties.Noneis de standaardwaarde. -
Constant: de functie kan niet worden verwijderd en de eigenschappen ervan kunnen niet worden gewijzigd.Constantis 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 parameter-Force. U kuntRemove-Itemgebruiken om de functie te verwijderen. -
AllScope: De functie wordt gekopieerd naar alle nieuwe scopes die worden gecreëerd.
Ondersteunde cmdlets
De pijplijn gebruiken
Provider-cmdlets accepteren pijplijn-invoer. U kunt de pijplijn gebruiken om de taak te vereenvoudigen door providergegevens van de ene cmdlet naar een andere provider-cmdlet te verzenden. Raadpleeg de cmdlet-referenties in dit artikel voor meer informatie over hoe u de pijplijn met provider-cmdlets kunt gebruiken.
Hulp krijgen
Vanaf Windows PowerShell 3.0 kunt u aangepaste Help-onderwerpen krijgen voor provider-cmdlets die uitleggen hoe deze cmdlets zich gedragen in een bestandssysteemstation.
Als u de Help-onderwerpen wilt ophalen die zijn aangepast voor het bestandssysteemstation, voert u een opdracht Get-Help uit op een bestandssysteemstation of gebruikt u de parameter -Path van Get-Help- om een bestandssysteemstation op te geven.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Function: