Invoke-command -ArgumentList parameter syntax

后端 未结 2 1636
天涯浪人
天涯浪人 2021-01-19 05:56

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:

Invoke-Co         


        
相关标签:
2条回答
  • 2021-01-19 06:16

    Try it this way:

    $AccountList = 'Account1','Account2'
    $GroupList    = 'Group1','Group2'
    
    invoke-command {$args[0];'*****';$args[1]} -ArgumentList (,$AccountList,$GroupList) 
    
    Account1
    Account2
    *****
    Group1
    Group2
    
    0 讨论(0)
  • 2021-01-19 06:28

    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:

    Invoke-Command -filepath $createSAPSPath -ConnectionUri $uri -Credential $credential -ArgumentList $accountsList, $groupList
    

    ... and get expected results.

    0 讨论(0)
提交回复
热议问题