Я работаю с PowerShell для сбора данных из списка удаленных серверов, которые затем превращаю в объект JSON. Все работает нормально, но я получаю действительно странный вывод, который я не могу исключить.
Я пробовал передавать результаты 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
}
]
}