Using a colon with cmdlet parameters
Another question at Tuesdays PowerShell group revolved around using colons to link values to parameters. I’d not really thought about before. Thinking about it later I realised that you only really see it when passing booleans to –Confirm. If you don’t use a colon then you get this
PS> Disable-NetAdapter -Name "Virtual Wireless" -Confirm $false
Disable-NetAdapter : A positional parameter cannot be found that accepts argument 'False'.
At line:1 char:1
+ Disable-NetAdapter -Name "Virtual Wireless" -Confirm $false
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Disable-NetAdapter], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Disable-NetAdapter
But this will work
PS> Disable-NetAdapter -Name "Virtual Wireless" -Confirm:$false
Just for completeness this works as well
PS> Get-NetAdapter –Name:"Virtual Wireless"
though it doesn’t tend to get used