Ответ 1
Я не уверен, что буду следовать. Вам нужен массив объектов с указанными вами свойствами? Поскольку ваш образец сначала создает массив, вы затем перезаписываете его в один объект. Таким образом, вы потеряли свой массив.
Вы можете создать объект с помощью new-object
и указать свойства со значениями как хэш-таблицу в параметре -Property
. Вот так:
$c = New-Object psobject -Property @{
Name = "John"
Gender = "Male"
Age = 30
}
Чтобы создать массив из них, вы можете использовать:
$myarray = @()
$myarray += New-Object psobject -Property @{
Name = "John"
Gender = "Male"
Age = 30
}
Если у вас есть несколько тестов, которые вы запускаете один за другим, вы можете запускать тесты в функции, которая проверяет и создает "resultobject", а затем вы ее собираете:
$myresults = @()
function mytests($computer) {
#Test connection
$online = Test-Connection $computer
#Get buildnumber
$build = (Get-WmiObject win32_operatingsystem -ComputerName $computer).buildnumber
#other tests
#output results
New-Object psobject -Property @{
Online = $online
WinBuild = $build
}
}
$myresults += mytests -computer "mycomputername"