about_Function_Provider
Anbietername
Funktion
Laufwerke
Function:
Capabilities
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 Instanz der System.Management.Automation.FunctionInfo-Klasse . Jeder Filter ist eine Instanz 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 auf das Function:
Laufwerk (Set-Location Function:
) ändern. Oder Sie können von einem anderen PowerShell-Laufwerk aus arbeiten. Um von einem anderen Speicherort aus auf eine Funktion zu verweisen, verwenden Sie den Laufwerknamen (Function:
) im Pfad.
Set-Location Function:
Um zu einem Dateisystemlaufwerk zurückzukehren, geben Sie den Namen des Laufwerks ein. Beispiel:
Set-Location C:
Sie können auch mit dem Funktionsanbieter von jedem anderen PowerShell-Laufwerk aus arbeiten. Um von einem anderen Speicherort aus auf eine Funktion zu verweisen, verwenden Sie den Laufwerknamen Function:
im Pfad.
Hinweis
PowerShell verwendet Aliase, damit Sie mit Anbieterpfaden vertraut arbeiten können. Befehle wie dir
z. B. aliase ls
für "Get-ChildItemcd
" sind 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 hat keine Container, sodass der obige Befehl den gleichen Effekt 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 dargestellt.
(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
Um die Definition für eine Funktion abzurufen, die einen Gedankenstrich (-
) im Namen enthält, umschließen Sie den Wert nach dem Dollarzeichen in geschweifte geschweifte Klammern.
${function:Clear-Host}
Abrufen ausgewählter Funktionen
Dieser Befehl ruft die man
Funktion vom Function:
Laufwerk ab. Es verwendet das Get-Item
Cmdlet, um die Funktion abzurufen. Der Pipelineoperator (|
) sendet das Ergebnis an Format-Table
. Der -Wrap
Parameter leitet Text an, der nicht in die Zeile passt, auf die nächste Zeile. Der -Autosize
Parameter ändert die Größe der Tabellenspalten entsprechend dem Text.
Get-Item -Path man | Format-Table -Wrap -Autosize
Arbeiten mit Funktionsanbieterpfaden
Diese Befehle rufen beide die Funktion mit dem Namen c:
ab. 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 Function:
Laufwerks 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 Cmdlet zum Erstellen einer Funktion namens .This command uses the New-Item
cmdlet to create a function called Win32:
.
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 auch eine Funktion erstellen, indem Sie sie in die PowerShell-Befehlszeile eingeben. Beispiel: tpe Function:Win32: {Set-Location C:\Windows\System32}
. Wenn Sie sich auf dem Function:
Laufwerk befinden, können Sie den Laufwerknamen weglassen.
Löschen einer Funktion
Mit diesem Befehl wird die more
Funktion aus der aktuellen Sitzung gelöscht.
Remove-Item Function:more
Ändern einer Funktion
Dieser Befehl verwendet das Set-Item
Cmdlet, um die prompt
Funktion so zu ändern, dass die Uhrzeit 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 .gh
Rename-Item -Path Function:help -NewName gh
Kopieren einer Funktion
Dieser Befehl kopiert die prompt
Funktion auf oldPrompt
, wodurch effektiv 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 weist einen Wert von None
. Um den Wert der Options-Eigenschaft zu ändern, verwenden Sie Set-Item
.
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 im vom Anbieter aktivierten 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 ändern inConstant
.Private
: Die Funktion ist nur im aktuellen Bereich sichtbar.- (nicht in untergeordneten Bereichen).
ReadOnly
: Die Eigenschaften der Funktion können nicht geändert werden, außer mithilfe des-Force
Parameters. Sie können die Funktion löschenRemove-Item
.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 Aufgabe mithilfe der Pipeline 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-Referenzen 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 auf einem Dateisystemlaufwerk aus, oder verwenden Sie den -Path
Parameter " Get-Help ", um ein Dateisystemlaufwerk anzugeben.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function: