Invoke-command -ArgumentList parameter syntax

Question:

I’m trying to add multiple csv-imported lists to a remote executed PS script. It works fine when I pass only one list using the following command:

What would be the correct syntax for multiple list objects? I’ve tried:

But it doesn’t seem to work…

Thanks,

Glenn

Answer:

You have to realize why you need unary comma in the first situation, to understand why its not needed in the second one.

Parameter -ArgumentList takes Object[] argument type. If you are passing single collection, you need to prevent PowerShell from treating single argument (that happens to be a collection) as collection of arguments passed to this parameter.

If you pass something that is collection already (e.g. $AnyObject, $EvenCollection), regardless of the type of individual objects, PowerShell will do what users usually expect: pass first collection to first parameter, second collection to the second parameter.

To sum it up: you should be able to run this like that:

… and get expected results.

Source:

Invoke-command -ArgumentList parameter syntax by licensed under CC BY-SA | With most appropriate answer!

Leave a Reply