about_Parameters
Kurze Beschreibung
Beschreibt, wie Sie mit Befehlsparametern in PowerShell arbeiten.
Lange Beschreibung
Die meisten PowerShell-Befehle, z. B. Cmdlets, Funktionen und Skripts, basieren auf Parametern, damit Benutzer Optionen auswählen oder Eingaben bereitstellen können. Die Parameter folgen dem Befehlsnamen und weisen das folgende Formular auf:
-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>
Dem Namen des Parameters wird ein Bindestrich (-
) vorangestellt, der PowerShell signalisiert, dass das Wort, das dem Bindestrich folgt, ein Parametername ist. Der Parametername und -wert können durch ein Leerzeichen oder ein Doppelpunktzeichen getrennt werden. Einige Parameter erfordern keinen Parameterwert oder akzeptieren keinen Parameterwert. Andere Parameter erfordern einen Wert, aber nicht den Parameternamen im Befehl.
Die Art der Parameter und die Anforderungen für diese Parameter variieren. Verwenden Sie das Get-Help
Cmdlet, um Informationen zu den Parametern eines Befehls zu finden. Um beispielsweise Informationen zu den Parametern des Get-ChildItem
Cmdlets zu finden, geben Sie Folgendes ein:
Get-Help Get-ChildItem
Um Informationen zu den Parametern eines Skripts zu finden, verwenden Sie den vollständigen Pfad zur Skriptdatei. Zum Beispiel:
Get-Help $HOME\Documents\Scripts\Get-Function.ps1
Das Get-Help
Cmdlet gibt verschiedene Details zum Befehl zurück, einschließlich einer Beschreibung, der Befehlssyntax, Informationen zu den Parametern und Beispielen zur Verwendung der Parameter in einem Befehl.
Sie können auch den Parameter Parameter des Get-Help
Cmdlets verwenden, um Informationen zu einem bestimmten Parameter zu finden. Alternativ können Sie den Parameter mit dem Wert des Wildcardzeichens ( *
) verwenden, um Informationen zu allen Parametern des Befehls zu finden. Der folgende Befehl ruft beispielsweise Informationen zu allen Parametern des Get-Member
Cmdlets ab:
Get-Help Get-Member -Parameter *
Standardwerte für Parameter
Optionale Parameter weisen einen Standardwert auf, bei dem es sich um den Wert handelt, der verwendet oder angenommen wird, wenn der Parameter nicht im Befehl angegeben ist.
Der Standardwert des Parameters "ComputerName " vieler Cmdlets ist z. B. der Name des lokalen Computers. Daher wird der name des lokalen Computers im Befehl verwendet, es sei denn, der ComputerName-Parameter ist angegeben.
Informationen zum Ermitteln des Standardwerts finden Sie im Hilfethema zum Cmdlet. Die Parameterbeschreibung sollte den Standardwert enthalten.
Sie können auch einen benutzerdefinierten Standardwert für jeden Parameter eines Cmdlets oder einer erweiterten Funktion festlegen. Informationen zum Festlegen benutzerdefinierter Standardwerte finden Sie unter about_Parameters_Default_Values.
Parameter-Attributtabelle
Wenn Sie die Parameter "Full", "Parameter" oder "Online " des Get-Help
Cmdlets verwenden, Get-Help
wird eine Parameter-Attributtabelle mit detaillierten Informationen zum Parameter angezeigt.
Diese Informationen enthalten die Details, die Sie kennen müssen, um den Parameter zu verwenden.
Das Hilfethema für das Get-ChildItem
Cmdlet enthält z. B. die folgenden Details zu seinem Path-Parameter:
-Path <string[]>
Specifies a path of one or more locations. Wildcard characters are
permitted. The default location is the current directory (.).
Required? false
Position? 0
Default value Current directory
Accept pipeline input? true (ByValue, ByPropertyName)
Accept wildcard characters? true
Die Parameterinformationen umfassen die Parametersyntax, eine Beschreibung des Parameters und die Parameterattribute. In den folgenden Abschnitten werden die Parameterattribute beschrieben.
Parameter erforderlich
Diese Einstellung gibt an, ob der Parameter obligatorisch ist, d. h., ob alle Befehle, die dieses Cmdlet verwenden, diesen Parameter enthalten müssen. Wenn der Wert "True" ist und der Parameter im Befehl fehlt, fordert PowerShell Sie zur Eingabe eines Werts für den Parameter auf.
Parameterposition
Wenn die Position
Einstellung auf eine nicht negative ganze Zahl festgelegt ist, ist der Parametername nicht erforderlich. Dieser Parametertyp wird als Positionsparameter bezeichnet, und die Zahl gibt die Position an, an der der Parameter im Verhältnis zu anderen Positionsparametern angezeigt werden muss. Ein benannter Parameter kann an einer beliebigen Position nach dem Cmdlet-Namen aufgeführt werden. Wenn Sie den Parameternamen für einen Positionsparameter einschließen, kann der Parameter an einer beliebigen Position nach dem Cmdlet-Namen aufgeführt werden.
Beispielsweise weist das Get-ChildItem
Cmdlet Parameter "Path" und "Exclude" auf. Die Position
Einstellung für Pfad ist 0, was bedeutet, dass es sich um einen Positionsparameter handelt. Die Position
Einstellung für "Ausschließen" wird benannt.
Dies bedeutet, dass Path nicht den Parameternamen erfordert, aber sein Parameterwert muss der erste oder nur unbenannte Parameterwert im Befehl sein. Da der Exclude-Parameter jedoch ein benannter Parameter ist, können Sie ihn an einer beliebigen Position im Befehl platzieren.
Als Ergebnis der Position
Einstellungen für diese beiden Parameter können Sie einen der folgenden Befehle verwenden:
Get-ChildItem -Path c:\techdocs -Exclude *.ppt
Get-ChildItem c:\techdocs -Exclude *.ppt
Get-ChildItem -Exclude *.ppt -Path c:\techdocs
Get-ChildItem -Exclude *.ppt c:\techdocs
Wenn Sie einen anderen Positionsparameter ohne Angabe des Parameternamens einschließen möchten, muss dieser Parameter in der durch die Position
Einstellung angegebenen Reihenfolge platziert werden.
Parametertyp
Diese Einstellung gibt den Microsoft .NET Framework-Typ des Parameterwerts an. Wenn der Typ beispielsweise "Int32" lautet, muss der Parameterwert eine ganze Zahl sein. Wenn der Typ eine Zeichenfolge ist, muss der Parameterwert eine Zeichenfolge sein.
Wenn die Zeichenfolge Leerzeichen enthält, muss der Wert in Anführungszeichen eingeschlossen werden, oder die Leerzeichen müssen dem Escapezeichen (`
) vorangestellt werden.
Standardwert
Diese Einstellung gibt den Wert an, den der Parameter annimmt, wenn kein anderer Wert angegeben wird. Der Standardwert des Path-Parameters ist z. B. häufig das aktuelle Verzeichnis. Erforderliche Parameter haben nie einen Standardwert. Bei vielen optionalen Parametern gibt es keinen Standardwert, da der Parameter keine Auswirkung hat, wenn er nicht verwendet wird.
Akzeptiert mehrere Werte
Diese Einstellung gibt an, ob ein Parameter mehrere Parameterwerte akzeptiert. Wenn ein Parameter mehrere Werte akzeptiert, können Sie eine durch Trennzeichen getrennte Liste als Wert des Parameters im Befehl eingeben oder eine durch Trennzeichen getrennte Liste (ein Array) in einer Variablen speichern und dann die Variable als Parameterwert angeben.
Beispielsweise akzeptiert der Parameter Name des Get-Service
Cmdlets mehrere Werte. Die folgenden Befehle sind beide gültig:
Get-Service -Name winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -Name $s
Akzeptiert Pipelineeingaben
Diese Einstellung gibt an, ob Sie den Pipelineoperator (|
) verwenden können, um einen Wert an den Parameter zu senden.
Value Description
----- -----------
False Indicates that you cannot pipe a value to the
parameter.
True (by Value) Indicates that you can pipe any value to the
parameter, just so the value has the .NET
Framework type specified for the parameter or the
value can be converted to the specified .NET
Framework type.
Wenn ein Parameter "True (by Value)" lautet, versucht PowerShell, alle weitergeleiteten Werte diesem Parameter zuzuordnen, bevor es versucht, den Befehl zu interpretieren.
True (by Property Name) Indicates that you can pipe a value to the
parameter, but the .NET Framework type of the
parameter must include a property with the same
name as the parameter.
Sie können z. B. einen Wert nur dann an einen Name-Parameter übergeben, wenn der Wert eine Eigenschaft namens "Name" aufweist.
Hinweis
Ein typierter Parameter, der Pipelineeingaben (by Value
) oder (by PropertyName
) akzeptiert, ermöglicht die Verwendung von Verzögerungsbindungsskriptblöcken für den Parameter.
Der Delay-Bind-Skriptblock wird während der ParameterBinding-Ausführung automatisch ausgeführt. Das Ergebnis ist an den Parameter gebunden. Die Verzögerungsbindung funktioniert nicht für Parameter, die als Typ ScriptBlock
definiert sind, oder System.Object
der Skriptblock wird übergeben , ohne aufgerufen zu werden.
Informationen zu Skriptblöcken mit Verzögerungsbindung finden Sie hier about_Script_Blocks.md
Akzeptiert Wildcardzeichen
Diese Einstellung gibt an, ob der Wert des Parameters Platzhalterzeichen enthalten kann, damit der Parameterwert mit mehreren vorhandenen Elementen im Zielcontainer abgeglichen werden kann.
Allgemeine Parameter
Allgemeine Parameter sind Parameter, die Sie mit jedem Cmdlet verwenden können. Weitere Informationen zu allgemeinen Parametern finden Sie unter about_CommonParameters.