Over parameters
Korte beschrijving
Hierin wordt beschreven hoe u werkt met opdrachtparameters in PowerShell.
Lange beschrijving
De meeste PowerShell-opdrachten, zoals cmdlets, functies en scripts, zijn afhankelijk van parameters waarmee gebruikers opties kunnen selecteren of invoer kunnen leveren. De parameters volgen de opdrachtnaam en hebben de volgende vorm:
-<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 niet de parameternaam in de opdracht.
Het type parameters en de vereisten voor deze parameters variëren. Gebruik Get-Help
de cmdlet voor informatie over de parameters van een opdracht. Als u bijvoorbeeld informatie wilt over de parameters van de Get-ChildItem
cmdlet, typt u:
Get-Help Get-ChildItem
Als u informatie wilt over de parameters van een script, gebruikt u het volledige pad naar het scriptbestand. Bijvoorbeeld:
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 van het gebruik van de parameters in een opdracht.
U kunt ook de parameter Parameter van de Get-Help
cmdlet gebruiken om informatie over een bepaalde parameter te vinden. Of u kunt de parameter Parameter 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 verondersteld 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 beschrijving van de parameter 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
wordt een parameterkenmerktabel met gedetailleerde informatie over de parameter weergegeven.
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, of alle opdrachten die deze cmdlet gebruiken, deze parameter moeten bevatten. Wanneer de waarde True is en de parameter ontbreekt in de opdracht, vraagt PowerShell u om een waarde voor de parameter.
Parameterpositie
Als de Position
instelling is ingesteld op een positief geheel getal, is de parameternaam niet vereist. Dit type parameter wordt aangeduid als een positionele parameter en het getal geeft de positie aan waarin de parameter moet worden weergegeven ten opzichte van andere positionele parameters. Een benoemde parameter kan worden weergegeven op elke positie na de naam van de cmdlet. Als u de parameternaam voor een positionele parameter opneemt, kan de parameter worden weergegeven op elke positie na de naam van de cmdlet.
De cmdlet heeft bijvoorbeeld de Get-ChildItem
parameters Pad en Uitsluiten. De Position
instelling voor Pad is 0, wat betekent dat het een positionele parameter is. De Position
instelling voor Uitsluiten heeft de naam.
Dit betekent dat Pad niet de parameternaam vereist, maar de parameterwaarde moet de eerste of enige 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 wilt 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 wordt het Microsoft-.NET Framework type van de parameterwaarde opgegeven. 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 wordt de waarde opgegeven die door de parameter wordt aangenomen als er geen andere waarde wordt opgegeven. De standaardwaarde van de path-parameter is bijvoorbeeld vaak de huidige map. Vereiste parameters hebben nooit een standaardwaarde. Voor veel optionele parameters is er geen standaardwaarde 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 vervolgens de variabele opgeven als de parameterwaarde.
De parameter ServiceName van de Get-Service
cmdlet accepteert bijvoorbeeld meerdere waarden. De volgende opdrachten zijn beide geldig:
Get-Service -servicename winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -servicename $s
Pijplijninvoer accepteren
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 'True (by Value)' is, probeert PowerShell eventuele doorsluisde waarden aan die parameter te koppelen voordat andere methoden worden geprobeerd 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 alleen een waarde doorsluisen naar een naamparameter als de waarde een eigenschap met de naam Naam heeft.
Notitie
Met een getypte parameter die pijplijninvoer (by Value
) of (by PropertyName
) accepteert, kunt u scriptblokken voor vertragingsbindingen gebruiken voor de parameter.
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
, wordt het scriptblok doorgegeven zonder aan te roepen.
U kunt hier meer lezen over scriptblokken voor vertragingsbindingabout_Script_Blocks.md
Accepteert jokertekens
Deze instelling geeft aan of de waarde van de parameter jokertekens kan bevatten, zodat de parameterwaarde kan worden vergeleken met meer dan één bestaand item in de doelcontainer.
Algemene parameters
Algemene parameters zijn parameters die u met elke cmdlet kunt gebruiken. Zie about_CommonParameters voor meer informatie over algemene parameters.