Invoke-command -ArgumentList参数语法

Gle*_*enn 4 powershell powershell-remoting

我正在尝试将多个csv导入的列表添加到远程执行的PS脚本中.当我使用以下命令仅传递一个列表时,它工作正常:

Invoke-Command -filepath $createSAPSPath -ConnectionUri $uri -Credential $credential -ArgumentList (,$accountsList)
Run Code Online (Sandbox Code Playgroud)

多个列表对象的正确语法是什么?我试过了:

Invoke-Command -filepath $createSAPSPath -ConnectionUri $uri -Credential $credential -ArgumentList (,$accountsList),(,$groupsList)
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用......

谢谢,

格伦

Bar*_*ekB 8

你必须意识到为什么你需要在第一种情况下使用一元逗号,以理解为什么在第二种情况下不需要它.

参数-ArgumentList采用Object[]参数类型.如果要传递单个集合,则需要阻止PowerShell将单个参数(恰好是集合)视为传递给此参数的参数集合.

如果您已经传递了某些集合(例如$AnyObject, $EvenCollection),无论单个对象的类型如何,PowerShell都会执行用户通常期望的操作:将第一个集合传递给第一个参数,将第二个集合传递给第二个参数.

总结一下:你应该能够像这样运行:

Invoke-Command -filepath $createSAPSPath -ConnectionUri $uri -Credential $credential -ArgumentList $accountsList, $groupList
Run Code Online (Sandbox Code Playgroud)

......并获得预期的结果.