2016-10-04 4 views
1

Ich versuche, ein One-Liner zu schreiben, um einige der Funktionen von Netbackup aus der Ferne zu nutzen. Ich weiß, wie Parameter an Invoke Command übergeben werden, die -ars [0] und [1] am Ende verwenden, mit wiederholenden Parametern. Ein Beispiel dafür, was ich versuche zu erreichen:Powershell - Übergeben Sie mehrere Parameter an Invoke-Command

Konventionen

CC = Ländercode (Will wiederholen aufgrund der Namensgebung

SS = Seite (wiederholt auch wegen Namenskonvention)

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} 

Nach Benutzereingabe bekommen und die Parameter erklärt, es scheint nicht

zum invoke-Befehl übergeben
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 

Antwort

1

Verwenden param ($ val1, ...) innerhalb des Skriptblocks, um die Argumente zu übergeben.

Invoke-Command -ComputerName 'SERVERNAME' -ScriptBlock { 
param($argument1, $argument2) #<--- this is required! 
write-host $CCode 
write-host $Site 
} -ArgumentList ($argument1, $argument2) 

Weitere Informationen und Syntax können bei Argumente (alias args) Abschnitt für Invoke-Command cmdlet gefunden werden.

0

Möglicherweise haben Sie ein Problem mit der Art, wie Sie Ihre Variablen erweitern und daher kann es scheinen, die Argumente werden nicht korrekt übergeben, wenn ich Debuggen verwende ich einfach schreiben, um die Ausgabe zu testen. Zum Beispiel:

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" 
Verwandte Themen