here is a one line that I tried on a single host...and should work if you log on a VC as well... it will list all the VMs that have more than 4GB of memory :
Get-VM | Where-Object {$_.MemoryMB -gt 4096}
If you want just the name and memory then :
Get-VM | Where-Object {$_.MemoryMB -gt 4096} | Select Name,MemoryMB
For the other for the VMtools...
Get-VM | Get-View | Select-Object @{N="Name";E={$_.Name}},@{Name="ToolsStatus";E={$_.Guest.ToolsStatus}}
Regards