Quantcast
Channel: PowerShell.com – PowerShell Scripts, Tips, Forums, and Resources
Viewing all articles
Browse latest Browse all 6937

looping through psobject properties in array

$
0
0

hello and thank you for help in advance.

 

I am getting info out of VMWARE.  This is not a problem.  I am placing the information into custom PSOBJECT.

 

VMs may have multiple datastores, and network information.  I am simply adding new objects appended with a number added to the noteproperty.

 

My problem comes when trying access the information.

 

VM 1 may have only 1 datastore, which would be datastore0

VM2 may have 3 datastores, datastore0,1,2

 

I am trying to loop through the notepropery names for datastore(X) and network info(X).  So I get the information I placed there.

 

$t = 0

while($value.DataStore+$t){

write-host $value."DataStore"+$t

$t++

 

<code>

$vmarray = @()

 

 

foreach($vm in $vms){

$vminfo = Get-VM -Name $vm | Select Name, DatastoreIdList, @{N="IPAddress";E={@($_.guest.IPAddress[0])}}

$datastore = Get-Datastore -Id $vminfo.DatastoreIdList

$portgroup = Get-VirtualPortGroup -VM $vm

$MAC = Get-NetworkAdapter -VM $vm | Select MacAddress

$netinfo = Get-NetworkAdapter -VM $vm | Select Name, MacAddress, NetworkName

 

 

$info = New-Object -TypeName PSObject

$info | Add-Member -MemberType NoteProperty -Name VmName -Value $vminfo.Name

$info | Add-Member -MemberType NoteProperty -Name IPAddress -Value $vminfo.IPAddress

#list all datastores

$z=0

foreach($item in $datastore){

Add-Member -InputObject $info -MemberType NoteProperty -Name DataStore$z -Value $item

$z++

}

#list all network adapter info

$i=0

foreach($item in $netinfo){

Add-Member -InputObject $info -MemberType NoteProperty -Name PortGroup$i -Value $item.Name

Add-Member -InputObject $info -MemberType NoteProperty -Name MACAddress$i -Value $item.MacAddress

Add-Member -InputObject $info -MemberType NoteProperty -Name Adapter$i -Value $item.NetworkName

$i++

}

$vmarray += $info

}

$vmarray

 

foreach ($value in $vmarray){

write-host $value.VmName

write-host $value.IPAddress

$t = 0

while($value.DataStore+$t){

write-host $value."DataStore"+$t

$t++

}

$s=0

while($value.Adapter+$s){

write-host $value.Adapter$s

write-host $value.PortGroup$s

write-host $value.MACAddress$s

$s++

}

}

</code>


Viewing all articles
Browse latest Browse all 6937

Trending Articles