我正在尝试编写一个单行程序来远程利用 netbackup 的一些功能。我知道如何在最后使用 -args[0] 和 [1] 将参数传递给调用命令,并带有重复参数。我试图完成的一个例子:
CC = 国家/地区代码(由于命名约定将重复
SS = 站点(由于命名约定也重复)
Invoke-Command -ComputerName RemoteServer -ScriptBlock {& "C:\Program Files\Veritas\NetBackup\bin\admincmd\bpplinfo.exe" CC0SITE_VMW_BRON -set -L -M CC0SITEb0100d0a.s0SITE.CC.DOMAIN.COM}
获取用户输入并声明参数后,它似乎没有传递给调用命令
Invoke-Command -ComputerName RemoteServer -ScriptBlock {& "C:\Program Files\Veritas\NetBackup\bin\admincmd\bpplinfo.exe" $args[0]0$args[1]_VMW_BRON -L -M $args[0]0$args[1]b0100d0a.s0$args[1].$args[0].DOMAIN.com} -Args $CCode, $Site
最佳答案
在脚本块中使用 param($val1,...) 来传递参数。
Invoke-Command -ComputerName 'SERVERNAME' -ScriptBlock {
param($argument1, $argument2) #<--- this is required!
write-host $CCode
write-host $Site
} -ArgumentList ($argument1, $argument2)
更多信息和语法可以在 Invoke-Command 的 ArgumentList(别名 Args)部分找到。小命令。
关于Powershell - 将多个参数传递给 Invoke-Command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39843767/