我一直在编写一个脚本来对远程设备运行一些网络连接检查,当我在我的机器上本地运行它时,所有功能似乎都在工作。
但是,一旦我将 Invoke-Command 添加到我的脚本中,它就会很好地连接到服务器,但是我的函数中的所有变量都得到了“空”值。
我正在使用全局变量来超出我的函数范围,因此我可以与它们交互,因为我无法以其他方式返回它们。
这是失败的代码部分:
$session = New-PSSession -ComputerName $Machines[$j] -Credential $credentials
Invoke-Command -Session $session -ScriptBlock {
$OSVersions = (Get-WMIObject win32_operatingsystem -ComputerName $Machines[$j]).caption
Network-Info -Machine $Machines[$j] -OSVersion $OSVersions -Techinfo $TechInfoNew
}
Export-Excel $FullPath -WorksheetName "Results" -StartColumn 1 -Title $Machines[$j] -TitleSize 12 -StartRow $i #fix the counter var
Export-Excel $FullPath -WorksheetName "Results" -StartColumn 2 -Title $OSVersions -TitleSize 12 -StartRow $i
foreach($result in $global:results){
Export-Excel $FullPath -WorksheetName "Results" -StartColumn 3 -Title $global:Tech[$k] -TitleSize 12 -StartRow $i
Export-Excel $FullPath -WorksheetName "Results" -StartColumn 4 -Title $result -TitleSize 12 -StartRow $i
$k++
$i++
}
错误在 foreach 语句中抛出。
提前致谢。