Funktionsanbieter
Anbietername
Funktion
Laufwerke
Function:
Funktionen
ShouldProcess
Kurze Beschreibung
Bietet Zugriff auf die in PowerShell definierten Funktionen.
Detaillierte Beschreibung
Mit dem PowerShell-Funktionsanbieter können Sie die Funktionen und Filter in PowerShell abrufen, hinzufügen, ändern, löschen und löschen.
Eine Funktion ist ein benannter Codeblock, der eine Aktion ausführt. Wenn Sie den Namen der Funktion eingeben, wird der Code in der Funktion ausgeführt. Ein Filter ist ein benannter Codeblock, der Bedingungen für eine Aktion festlegt. Sie können den Namen des Filters anstelle der Bedingung eingeben, z. B. in einem Where-Object
Befehl.
Das Funktionslaufwerk ist ein flacher Namespace, der nur die Funktions- und Filterobjekte enthält. Weder Funktionen noch Filter haben untergeordnete Elemente.
Der Funktionsanbieter unterstützt die folgenden Cmdlets, die in diesem Artikel behandelt werden.
Typen, die von diesem Anbieter verfügbar gemacht werden
Jede Funktion ist eine instance der System.Management.Automation.FunctionInfo-Klasse. Jeder Filter ist ein instance der System.Management.Automation.FilterInfo-Klasse.
Navigieren im Funktionslaufwerk
Der Funktionsanbieter macht seinen Datenspeicher auf dem Function:
Laufwerk verfügbar. Um mit Funktionen zu arbeiten, können Sie Ihren Speicherort in das Function:
Laufwerk (Set-Location Function:
) ändern. Oder Sie können von einem anderen PowerShell-Laufwerk aus arbeiten. Verwenden Sie den Laufwerksnamen (Function:
) im Pfad, um auf eine Funktion von einem anderen Speicherort zu verweisen.
Set-Location Function:
Um zu einem Dateisystemlaufwerk zurückzukehren, geben Sie den Namen des Laufwerks ein. Beispiel:
Set-Location C:
Sie können auch von jedem anderen PowerShell-Laufwerk aus mit dem Funktionsanbieter arbeiten. Um auf eine Funktion von einem anderen Speicherort zu verweisen, verwenden Sie den Laufwerksnamen Function:
im Pfad.
Hinweis
PowerShell verwendet Aliase, um Ihnen eine vertraute Methode zum Arbeiten mit Anbieterpfaden zu ermöglichen. Befehle wie dir
und ls
sind jetzt Aliase für Get-ChildItem, cd
ist ein Alias für Set-Location. und pwd
ist ein Alias für Get-Location.
Abrufen von Funktionen
Dieser Befehl ruft die Liste aller Funktionen in der aktuellen Sitzung ab. Sie können diesen Befehl von jedem Beliebigen PowerShell-Laufwerk aus verwenden.
Get-ChildItem -Path Function:
Der Funktionsanbieter verfügt über keine Container, sodass der obige Befehl die gleiche Auswirkung hat, wenn er mit Get-ChildItem
verwendet wird.
Get-ChildItem -Path Function:
Sie können die Definition einer Funktion abrufen, indem Sie auf die Definition-Eigenschaft zugreifen, wie unten gezeigt.
(Get-Item -Path function:more).Definition
Sie können die Definition einer Funktion auch mithilfe des Anbieterpfads abrufen, dem das Dollarzeichen ($
) vorangestellt ist.
$function:more
Abrufen ausgewählter Funktionen
Dieser Befehl ruft die man
Funktion vom Laufwerk ab Function:
. Es verwendet das Get-Item
Cmdlet, um die Funktion abzurufen. Der Pipelineoperator (|
) sendet das Ergebnis an Format-Table
. Der -Wrap
Parameter leitet Text, der nicht in die Zeile passt, auf die nächste Zeile um. Der -Autosize
Parameter ändert die Größe der Tabellenspalten, um den Text zu berücksichtigen.
Get-Item -Path man | Format-Table -Wrap -Autosize
Arbeiten mit Funktionsanbieterpfaden
Diese Befehle rufen beide die Funktion mit dem Namen ab c:
. Der erste Befehl kann in einem beliebigen Laufwerk verwendet werden. Der zweite Befehl wird auf dem Function:
Laufwerk verwendet. Da der Name mit einem Doppelpunkt endet, was die Syntax für ein Laufwerk ist, müssen Sie den Pfad mit dem Namen des Laufwerks verwenden. Innerhalb des Laufwerks Function:
können Sie beide Formate verwenden. Im zweiten Befehl stellt der Punkt (.
) die aktuelle Position dar.
PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:
Erstellen einer Funktion
Dieser Befehl verwendet das New-Item
Cmdlet, um eine Funktion namens Win32:
zu erstellen.
Der Ausdruck in Klammern ist der Skriptblock, der durch den Namen der Funktion dargestellt wird.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
Sie können eine Funktion auch erstellen, indem Sie sie an der PowerShell-Befehlszeile eingeben. Beispiel: tpe Function:Win32: {Set-Location C:\Windows\System32}
. Wenn Sie sich auf dem Function:
Laufwerk befinden, können Sie den Laufwerksnamen weglassen.
Löschen einer Funktion
Dieser Befehl löscht die more:
Funktion aus der aktuellen Sitzung.
Remove-Item Function:more:
Ändern einer Funktion
Dieser Befehl verwendet das Set-Item
Cmdlet, um die prompt
Funktion so zu ändern, dass die Zeit vor dem Pfad angezeigt wird.
Set-Item -Path Function:prompt -Value {
'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
}
Umbenennen einer Funktion
Dieser Befehl verwendet das Rename-Item
Cmdlet, um den Namen der help
Funktion in zu gh
ändern.
Rename-Item -Path Function:help -NewName gh
Kopieren einer Funktion
Mit diesem Befehl wird die prompt
Funktion in oldPrompt
kopiert, wodurch ein neuer Name für den Skriptblock erstellt wird, der der Eingabeaufforderungsfunktion zugeordnet ist.
Dadurch können Sie die ursprüngliche "prompt"-Funktion speichern, wenn Sie planen, sie zu ändern.
Die Options-Eigenschaft der neuen Funktion hat den Wert None
. Verwenden Sie Set-Item
, um den Wert der Options-Eigenschaft zu ändern.
Copy-Item -Path Function:prompt -Destination Function:oldPrompt
Dynamische Parameter
Dynamische Parameter sind Cmdlet-Parameter, die von einem PowerShell-Anbieter hinzugefügt werden und nur verfügbar sind, wenn das Cmdlet auf dem anbieterfähigen Laufwerk verwendet wird.
Optionen <[System.Management.Automation.ScopedItemOptions]>
Bestimmt den Wert der Options-Eigenschaft einer Funktion.
None
: Keine Optionen.None
ist die Standardoption.Constant
: Die Funktion kann nicht gelöscht werden, und ihre Eigenschaften können nicht geändert werden.Constant
ist nur verfügbar, wenn Sie eine Funktion erstellen. Sie können die Option einer vorhandenen Funktion nicht inConstant
ändern.Private
: Die Funktion ist nur im aktuellen Bereich sichtbar.- (nicht in untergeordneten Bereichen).
ReadOnly
: Die Eigenschaften der Funktion können nur mithilfe des-Force
-Parameters geändert werden. Sie können verwendenRemove-Item
, um die Funktion zu löschen.AllScope
: Die Funktion wird in alle neuen Bereiche kopiert, die erstellt werden.
Unterstützte Cmdlets
Verwenden der Pipeline
Anbieter-Cmdlets akzeptieren Pipelineeingaben. Sie können die Pipeline verwenden, um die Aufgabe zu vereinfachen, indem Sie Anbieterdaten von einem Cmdlet an ein anderes Anbieter-Cmdlet senden. Weitere Informationen zur Verwendung der Pipeline mit Anbieter-Cmdlets finden Sie in den Cmdlet-Verweisen in diesem Artikel.
Hilfe
Ab Windows PowerShell 3.0 können Sie benutzerdefinierte Hilfethemen für Anbieter-Cmdlets abrufen, die erläutern, wie sich diese Cmdlets in einem Dateisystemlaufwerk verhalten.
Um die Hilfethemen abzurufen, die für das Dateisystemlaufwerk angepasst sind, führen Sie einen Get-Help-Befehl in einem Dateisystemlaufwerk aus, oder verwenden Sie den -Path
Parameter von Get-Help , um ein Dateisystemlaufwerk anzugeben.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function: