invoke-command传入数据/变量,传入已更改的和新的数据/变量



我试图传递一些变量有点类似于下面,但它没有传递回我想要的更新/更改数据。在下面的小示例中,您能说明应该如何编写以能够像所示的那样传入和返回数据吗?

$myfirstname = Jos
$sess = new-pssession -computername "superdooperkompooter.domain.local"
invoke-command -jobname whatsmyname -session $sess -scriptblock {
#Pass in external parameter
Param($myfirstname)
#Change #myfirstname ... there's more to it in the real script
$myfirstname = Jon
$fullname = @()
$fullname += $myfirstname
$fullname += "Try"
$fullname += "Feckta" # So this should be effectively $fullname = @(Jon,Try,Feckta) at this point
# Now i need to pass back the changed/added variables
} -Argumentlist ($myfirstname,$fullname)
# Now when i attempt to show the data it just comes out blank
write-out $fullname
write-out $myfirstname 

-ArgumentList是用于输入的变量。没有"by refquot;"这里。

你需要做的是将你的Invoke-Command语句赋值给一个变量。从那里,当你准备好返回你的"多个变量"时,你可以将它们作为一个哈希表返回,这样它们就可以在你的Write-Host语句中使用。

$Output = invoke-command -jobname whatsmyname -session $sess -scriptblock {
#Pass in external parameter
Param($myfirstname)
#  ... Your code here
return @{
MyFirstName = $myfirstname
FullName    = $fullname
}
} -Argumentlist ($myfirstname)
write-out $Output.fullname
write-out $Output.myfirstname 
<<p>

其他说明/strong>我没有将$fullName传递给参数列表,因为您只定义了Param($myFirstName),并且我们确定了该值不会出去并分配给$fullName变量。

最新更新