7

カスタム オブジェクト (PSObject) を作成し、そのプロパティを事前に定義し、後でプログラムを実行することは可能ですか?オブジェクトに値の配列を追加し続けます。

例えば;

$c = @()

$c = New-Object PSObject
$c | Add-Member -type NoteProperty -name Name 
$c | Add-Member -type NoteProperty -name Gender
$c | Add-Member -type NoteProperty -name Age


$c | Add-Member -type NoteProperty -name Name -value "John"
$c | Add-Member -type NoteProperty -name Gender -value "Male"
$c | Add-Member -type NoteProperty -name Age -value "30"

リードやアドバイスをよろしくお願いします。

4

2 に答える 2

17

フォローしているかどうかわかりません。指定したプロパティを持つオブジェクトの配列が必要ですか? サンプルは最初に配列を作成するため、それを 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
}

1 つずつ実行する複数のテストがある場合は、「結果オブジェクト」をテストして作成する関数でテストを実行し、それを収集できます。

$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"
于 2013-03-13T15:22:18.537 に答える