2016-10-04 71 views
1

私は、リモートでnetbackupの機能の一部を活用するために1ライナーを作成しようとしています。私はパラメータを繰り返しながら、最後に-args [0]と[1]を使ってInvoke Commandにパラメータを渡す方法を知っています。私が達成しようとしているものの例:Powershell - 複数のパラメータをInvoke-Commandに渡す

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コマンドに渡すようには見えない

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 

答えて

1

使用の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の)セクションに見出すことができます。

0

変数を展開する方法に問題があり、デバッグ中にargsが正しく渡されないように見えることがあります。を使用して出力をテストします。例:

Invoke-Command -ComputerName localhost -ScriptBlock {write "C:\Program Files\Veritas\NetBackup\bin\admincmd\bpplinfo.exe CC0SITE_VMW_BRON -set -L -M CC0SITEb0100d0a.s0SITE.CC.DOMAIN.com"} 
Invoke-Command -ComputerName localhost -ScriptBlock {write "C:\Program Files\Veritas\NetBackup\bin\admincmd\bpplinfo.exe $($args[0])0$($args[1])_VMW_BRON -set -L -M $($args[0])0$($args[1])b0100d0a.s0$($args[1]).$($args[0]).DOMAIN.com"} -Args "CC", "SITE" 
関連する問題