I have a script to which I pass server name(s) in $args.
This way I can do stuff to this (these) server(s) using foreach
:
.\script.ps1 host1 host2 host3
foreach ($i in $args)
{
Do-Stuff $i
}
I'd like to add a named optional parameter called vlan. I've tried:
Param(
[string]$vlan
)
foreach ($i in $args)
{
Write-Host $i
}
Write-Host $vlan
It works if you pass a -vlan
parameter but if you don't then the script auto assigns the last server name to $vlan
.
So, how can you pass single or multiple parameters plus an optional named parameter to a PowerShell script?
Ideally, here are valid examples:
.\script.ps1 host1
.\script.ps1 host1 host2 host3
.\script.ps1 host1 host2 -vlan office