2016-10-04 3 views
1

netbackup의 일부 기능을 원격으로 활용하기 위해 한 줄짜리를 작성하려고합니다. 매개 변수를 반복하면서 끝에 -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 -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 cmdlet에 대한 (별칭 인수) 섹션 ArgumentList의에서 찾을 수 있습니다.

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" 
관련 문제