Arrays 如何为每个对象创建具有不同值的对象数组

Arrays 如何为每个对象创建具有不同值的对象数组,arrays,powershell,Arrays,Powershell,我是编程新手 我想创建一个包含4个对象的数组,每个对象具有不同的值,而不覆盖前一个对象 这是我的代码: $WKey = "hkcu:\Software\Microsoft\Windows\CurrentVersion\Uninstall\" $keys = get-childitem -path hkcu:\Software\Microsoft\Windows\CurrentVersion\Uninstall\ $IN = @{} foreach ($key in $keys

我是编程新手

我想创建一个包含4个对象的数组,每个对象具有不同的值,而不覆盖前一个对象

这是我的代码:

$WKey = "hkcu:\Software\Microsoft\Windows\CurrentVersion\Uninstall\"
$keys = get-childitem -path hkcu:\Software\Microsoft\Windows\CurrentVersion\Uninstall\
$IN = @{}
foreach ($key in $keys.pschildname){

   $name = Get-ItemPropertyValue -Path $WKey$key -name displayname
   if ($name -like '*injaz*'){
        $HM = @{}
        $HM.Name = Get-ItemPropertyValue -Path $WKey$key -name displayname
        $HM.Version = Get-ItemPropertyValue -Path $WKey$key -name displayVersion
        $HM.Uninstaller = Get-ItemPropertyValue -Path $WKey$key -name UninstallString
        $HM.Keyname = $key
        $Objectname = New-Object PSobject -Property $HM
        $IN.add($Objectname.Name,$Objectname.Version,$Objectname.Uninstaller,$Objectname.keyname)
        $Objectname
        $IN
   }
}

您需要创建一个pscustom对象并向其添加属性

$WKey = "hkcu:\Software\Microsoft\Windows\CurrentVersion\Uninstall\"
$keys = get-childitem -path hkcu:\Software\Microsoft\Windows\CurrentVersion\Uninstall\
$IN = [System.Collections.ArrayList]@{}
foreach ($key in $keys.pschildname){

   $name = Get-ItemPropertyValue -Path $WKey$key -name displayname
   if ($name -like '*injaz*'){
        #Create object
        $HM = New-Object -TypeName psobject 
        #Add properties to object 
        $HM | Add-Member -MemberType NoteProperty -Name "Name" -Value $(Get-ItemPropertyValue -Path $WKey$key -name displayname)
        $HM  | Add-Member -MemberType NoteProperty -Name "Version" -Value $(Get-ItemPropertyValue -Path $WKey$key -name displayVersion)
        #Continue with the other values

        #Add object to array
        $IN.Add($HM) | Out-Null
   }
}

您需要创建一个pscustom对象并向其添加属性

$WKey = "hkcu:\Software\Microsoft\Windows\CurrentVersion\Uninstall\"
$keys = get-childitem -path hkcu:\Software\Microsoft\Windows\CurrentVersion\Uninstall\
$IN = [System.Collections.ArrayList]@{}
foreach ($key in $keys.pschildname){

   $name = Get-ItemPropertyValue -Path $WKey$key -name displayname
   if ($name -like '*injaz*'){
        #Create object
        $HM = New-Object -TypeName psobject 
        #Add properties to object 
        $HM | Add-Member -MemberType NoteProperty -Name "Name" -Value $(Get-ItemPropertyValue -Path $WKey$key -name displayname)
        $HM  | Add-Member -MemberType NoteProperty -Name "Version" -Value $(Get-ItemPropertyValue -Path $WKey$key -name displayVersion)
        #Continue with the other values

        #Add object to array
        $IN.Add($HM) | Out-Null
   }
}