Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Anbietername
Funktion
Antriebe
Function:
Fähigkeiten
ShouldProcess
Kurzbeschreibung
Bietet Zugriff auf die in PowerShell definierten Funktionen.
Detaillierte Beschreibung
Mit dem PowerShell--Funktions--Anbieter können Sie die Funktionen und Filter in PowerShell abrufen, hinzufügen, ändern, leeren und löschen.
Eine Funktion ist ein benannter Codeblock, der eine Aktion ausführt. Wenn Sie den Funktionsnamen 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 Function Laufwerk ist ein flaches Namensverzeichnis, das nur die Funktionen und Filterobjekte enthält. Weder Funktionen noch Filter haben untergeordnete Elemente.
Der Function-Anbieter 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 Anbieter der -Funktion macht seinen Datenspeicher auf dem Laufwerk Function: verfügbar. Wenn Sie mit Funktionen arbeiten möchten, können Sie in das Function:-Laufwerk (Set-Location Function:) wechseln. Sie können aber auch 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 Laufwerknamen ein. Geben Sie beispielsweise Folgendes ein:
Set-Location C:
Sie können auch mit dem Function Provider 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.
Anmerkung
PowerShell verwendet Aliase, um Ihnen eine vertraute Methode für den Umgang mit Anbieterpfaden zu bieten. Befehle wie dir und ls sind jetzt Aliase für Get-ChildItem-, cd ist ein Alias für Set-Location- und pwd 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 dieselbe Wirkung hat, wenn er mit Get-ChildItemverwendet wird.
Get-ChildItem -Path Function:
Sie können die Definition einer Funktion abrufen, indem Sie auf die eigenschaft Definition zugreifen, wie unten dargestellt.
(Get-Item -Path Function:more).Definition
Sie können die Definition einer Funktion auch mithilfe des Anbieterpfads abrufen, der dem 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 Klammern.
${Function:Clear-Host}
Abrufen ausgewählter Funktionen
Mit diesem Befehl wird die man-Funktion vom laufwerk Function: abgerufen. Es verwendet das Cmdlet Get-Item, um die Funktion abzurufen. Der Pipelineoperator (|) sendet das Ergebnis an Format-Table. Der -Wrap-Parameter leitet Text an, der nicht in die Zeile in die nächste Zeile passt. Der parameter -AutoSize ändert die Größe der Tabellenspalten, um den Text aufzunehmen.
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 auf jedem Laufwerk verwendet werden. Der zweite Befehl wird im 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 New-Item, um eine Funktion namens Win32:zu erstellen.
Der Ausdruck in geschweiften Klammern ist der Scriptblock, der durch den Funktionsnamen dargestellt wird.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
Geltungsbereiche
Genau wie Variablen gehören Funktionen zu einem bestimmten Bereich. Wenn Sie eine Funktion erstellen, ist sie nur im Bereich verfügbar, in dem sie erstellt wurde. Um eine Funktion verfügbar zu machen, verwenden Sie beim Erstellen der Funktion einen Bereichsmodifizierer. Weitere Informationen finden Sie unter about_Scopes.
Im folgenden Beispiel wird der Global: Bereichsmodifizierer verwendet, um eine Funktion im globalen Bereich zu erstellen.
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 }
Ohne den Global: Bereichsmodifizierer wird die Funktion im lokalen Bereich erstellt. Wenn New-Function die neu erstellte Funktion verlässt, ist nicht mehr vorhanden.
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 Cmdlet Set-Item, 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 Cmdlet Rename-Item, um den Namen der help-Funktion in ghzu ändern.
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 Scriptblock erstellt wird, der der Eingabeaufforderungsfunktion zugeordnet ist.
Sie können dies verwenden, um die ursprüngliche Eingabeaufforderungsfunktion zu speichern, wenn Sie die Funktion ändern möchten.
Die Options-Eigenschaft der neuen Funktion weist den Wert Noneauf. Verwenden Sie , um den Wert der eigenschaft Set-Item 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 im vom Anbieter aktivierten Laufwerk verwendet wird.
Optionen <[System.Management.Automation.ScopedItemOptions]>
Bestimmt den Wert der Options -Eigenschaft einer Funktion.
-
None: Keine Optionen.Noneist die Standardeinstellung. -
Constant: Die Funktion kann nicht gelöscht werden, und ihre Eigenschaften können nicht geändert werden.Constantist 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 Gültigkeitsbereich sichtbar. - (nicht in untergeordneten Bereichen).
-
ReadOnly: Die Eigenschaften der Funktion können nur mithilfe des-Force-Parameters geändert werden. Sie könnenRemove-Itemverwenden, um die Funktion zu löschen. -
AllScope: Die Funktion wird in alle neuen Bereiche kopiert, die erstellt werden.
Unterstützte Cmdlets
Verwenden der Pipeline
Cmdlets von Anbietern 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 erhalten
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 Befehl "Get-Help" auf 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: