我正在使用PowerShell从远程服务器列表中收集数据,然后将其转换为JSON对象。一切工作正常,但我得到了一些非常奇怪的输出,我似乎无法排除。从Invoke-Command返回的无关数据
我试过管道Invoke-Command
结果并排除属性。我也尝试从返回的哈希文件中手动删除项目,但我似乎无法让它们消失。
我错过了什么?
编辑:
为了搞清楚什么是错在这里是一个简化,但仍然打破,剧本的缘故:
$returnedServer = @{}
$pass = cat "C:\...\securestring.txt" | convertto-securestring
$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist "UserName",$pass
$s = @("xx.xxx.xxx.xxx","xx.xxx.xxx.xxx")
foreach($server in $s)
{
$returnedServer.$server += ,(Invoke-Command -ComputerName $server -ScriptBlock
{
1
}-credential $mycred | select -ExcludeProperty PSComputerName,RunSpaceID,PSShowComputerName)
$returnedServer| ConvertTo-Json
,输出:
{
"xx.xxx.xxx.xxx": [
{
"value": 1,
"PSComputerName": "xx.xxx.xxx.xxx",
"RunspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"PSShowComputerName": xxxx
}
],
"xx.xxx.xxx.xxx": [
{
"value": 1,
"PSComputerName": "xx.xxx.xxx.xxx",
"RunspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"",
"PSShowComputerName": xxxx
}
]
}
我要么不正确集成该解决方案,或者它不适用于这类问题。 我已更新问题以反映此问题。 – DiscOH
不是你。我认为这是因为这些是反序列化的对象,而且它们不像预期的那样行事。 – mjolinor