J'ai un script auquel je passe le (s) nom (s) de serveur en $ args.
De cette façon, je peux faire des choses sur ce (ces) serveur (s) en utilisant foreach
:
.\script.ps1 host1 host2 host3
foreach ($i in $args)
{
Do-Stuff $i
}
Je voudrais ajouter un paramètre facultatif nommé appelé vlan. J'ai essayé:
Param(
[string]$vlan
)
foreach ($i in $args)
{
Write-Host $i
}
Write-Host $vlan
Cela fonctionne si vous passez un -vlan
paramètre mais si vous ne le faites pas, le script attribue automatiquement le dernier nom de serveur à $vlan
.
Alors, comment pouvez-vous transmettre un ou plusieurs paramètres plus un paramètre nommé facultatif à un script PowerShell?
Idéalement, voici des exemples valables:
.\script.ps1 host1
.\script.ps1 host1 host2 host3
.\script.ps1 host1 host2 -vlan office