about_Parameters

Korte beschrijving

Hierin wordt beschreven hoe u kunt werken met opdrachtparameters in PowerShell.

Lange beschrijving

De meeste PowerShell-opdrachten, zoals cmdlets, functies en scripts, zijn afhankelijk van parameters, zodat gebruikers opties kunnen selecteren of invoer kunnen opgeven. De parameters volgen de opdrachtnaam en hebben het volgende formulier:

-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>

De naam van de parameter wordt voorafgegaan door een afbreekstreepje (-), dat aan PowerShell aangeeft dat het woord na het afbreekstreepje een parameternaam is. De parameternaam en -waarde kunnen worden gescheiden door een spatie of een dubbele punt. Voor sommige parameters is geen parameterwaarde vereist of geaccepteerd. Voor andere parameters is een waarde vereist, maar de parameternaam in de opdracht is niet vereist.

Het type parameters en de vereisten voor deze parameters variëren. Gebruik de Get-Help cmdlet voor informatie over de parameters van een opdracht. Als u bijvoorbeeld informatie wilt vinden over de parameters van de Get-ChildItem cmdlet, typt u:

Get-Help Get-ChildItem

Als u informatie wilt vinden over de parameters van een script, gebruikt u het volledige pad naar het scriptbestand. Voorbeeld:

Get-Help $HOME\Documents\Scripts\Get-Function.ps1

De Get-Help cmdlet retourneert verschillende details over de opdracht, waaronder een beschrijving, de syntaxis van de opdracht, informatie over de parameters en voorbeelden die laten zien hoe u de parameters in een opdracht gebruikt.

U kunt ook de parameter parameter van de Get-Help cmdlet gebruiken om informatie over een bepaalde parameter te vinden. U kunt ook de parameterparameter met het jokerteken ( * ) gebruiken om informatie te vinden over alle parameters van de opdracht. Met de volgende opdracht wordt bijvoorbeeld informatie opgehaald over alle parameters van de Get-Member cmdlet:

Get-Help Get-Member -Parameter *

Standaardparameterwaarden

Optionele parameters hebben een standaardwaarde. Dit is de waarde die wordt gebruikt of wordt aangenomen wanneer de parameter niet is opgegeven in de opdracht.

De standaardwaarde van de parameter ComputerName van veel cmdlets is bijvoorbeeld de naam van de lokale computer. Als gevolg hiervan wordt de naam van de lokale computer gebruikt in de opdracht, tenzij de parameter ComputerName is opgegeven.

Zie het Help-onderwerp voor de cmdlet om de standaardparameterwaarde te vinden. De parameterbeschrijving moet de standaardwaarde bevatten.

U kunt ook een aangepaste standaardwaarde instellen voor elke parameter van een cmdlet of geavanceerde functie. Zie about_Parameters_Default_Values voor meer informatie over het instellen van aangepaste standaardwaarden.

Parameterkenmerktabel

Wanneer u de parameters Volledig, Parameter of Online van de Get-Help cmdlet gebruikt, Get-Help geeft u een tabel met parameterkenmerken weer met gedetailleerde informatie over de parameter.

Deze informatie bevat de details die u moet weten om de parameter te gebruiken. Het Help-onderwerp voor de Get-ChildItem cmdlet bevat bijvoorbeeld de volgende details over de 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

De parameterinformatie bevat de parametersyntaxis, een beschrijving van de parameter en de parameterkenmerken. In de volgende secties worden de parameterkenmerken beschreven.

Parameter vereist

Met deze instelling wordt aangegeven of de parameter verplicht is, dus of alle opdrachten die deze cmdlet gebruiken, deze parameter moeten bevatten. Wanneer de waarde Waar is en de parameter ontbreekt in de opdracht, wordt u door PowerShell gevraagd om een waarde voor de parameter.

Parameterpositie

Als de Position instelling is ingesteld op een niet-negatief geheel getal, is de parameternaam niet vereist. Dit type parameter wordt een positionele parameter genoemd en het getal geeft de positie aan waarin de parameter moet worden weergegeven ten opzichte van andere positionele parameters. Een benoemde parameter kan op elke positie na de naam van de cmdlet worden weergegeven. Als u de parameternaam voor een positionele parameter opneemt, kan de parameter op elke positie na de naam van de cmdlet worden vermeld.

De Get-ChildItem cmdlet heeft bijvoorbeeld de parameters Path en Exclude. De Position instelling voor Pad is 0, wat betekent dat het een positionele parameter is. De Position instelling voor Exclude heeft de naam.

Dit betekent dat Pad de parameternaam niet vereist, maar de parameterwaarde moet de eerste of alleen naamloze parameterwaarde in de opdracht zijn. Omdat de parameter Exclude echter een benoemde parameter is, kunt u deze op elke positie in de opdracht plaatsen.

Als gevolg van de Position instellingen voor deze twee parameters kunt u een van de volgende opdrachten gebruiken:

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

Als u een andere positionele parameter zou opnemen zonder de parameternaam op te nemen, moet die parameter worden geplaatst in de volgorde die is opgegeven door de Position instelling.

Parametertype

Met deze instelling geeft u het Microsoft .NET Framework-type van de parameterwaarde op. Als het type bijvoorbeeld Int32 is, moet de parameterwaarde een geheel getal zijn. Als het type tekenreeks is, moet de parameterwaarde een tekenreeks zijn. Als de tekenreeks spaties bevat, moet de waarde tussen aanhalingstekens worden geplaatst of moeten de spaties worden voorafgegaan door het escape-teken (`).

Standaardwaarde

Met deze instelling geeft u de waarde op die door de parameter wordt aangenomen als er geen andere waarde wordt opgegeven. De standaardwaarde van de parameter Path is bijvoorbeeld vaak de huidige map. Vereiste parameters hebben nooit een standaardwaarde. Voor veel optionele parameters is er geen standaardinstelling omdat de parameter geen effect heeft als deze niet wordt gebruikt.

Accepteert meerdere waarden

Deze instelling geeft aan of een parameter meerdere parameterwaarden accepteert. Wanneer een parameter meerdere waarden accepteert, kunt u een door komma's gescheiden lijst typen als de waarde van de parameter in de opdracht of een door komma's gescheiden lijst (een matrix) opslaan in een variabele en de variabele vervolgens opgeven als parameterwaarde.

De parameter Name van de Get-Service cmdlet accepteert bijvoorbeeld meerdere waarden. De volgende opdrachten zijn beide geldig:

Get-Service -Name winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -Name $s

Accepteert pijplijninvoer

Met deze instelling wordt aangegeven of u de pijplijnoperator (|) kunt gebruiken om een waarde naar de parameter te verzenden.

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.

Wanneer een parameter 'Waar (op waarde)' is, probeert PowerShell eventuele doorgesluisde waarden aan die parameter te koppelen voordat er andere methoden worden gebruikt om de opdracht te interpreteren.

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.

U kunt bijvoorbeeld een waarde alleen doorsluisen naar een naamparameter wanneer de waarde een eigenschap met de naam Name heeft.

Notitie

Een getypte parameter die pijplijninvoer (by Value) of (by PropertyName) accepteert, maakt het gebruik van scriptblokken voor vertragingsbinding op de parameter mogelijk.

Het scriptblok delay-bind wordt automatisch uitgevoerd tijdens ParameterBinding. Het resultaat is gebonden aan de parameter. Vertragingsbinding werkt niet voor parameters die zijn gedefinieerd als type ScriptBlock of System.Object, het scriptblok wordt doorgegeven zonder aan te roepen.

U kunt hier lezen over scriptblokken voor vertragingsbindingen about_Script_Blocks.md

Accepteert jokertekens

Met deze instelling wordt aangegeven of de waarde van de parameter jokertekens kan bevatten, zodat de parameterwaarde kan worden gekoppeld aan meer dan één bestaand item in de doelcontainer.

Algemene parameters

Algemene parameters zijn parameters die u kunt gebruiken met elke cmdlet. Zie about_CommonParameters voor meer informatie over algemene parameters.

Zie ook