Freigeben über


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.

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-ChildItemverwendet 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 oldPromptkopiert, 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 in Constantä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 verwenden Remove-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:

Weitere Informationen

about_Functions

about_Providers