The best way to find out if a VM is used, is to query the guest OS of that VM.
Are users logging on, are applications/services started/stopped, is the guest OS using resources above the normal "idle" consumption...?
The only one on that list, would be the resource consumption afaik.
That one you could query from outside the VM via Performance metrics (Get-Stat).
But I have to warn that this might be a very unreliable source.
yeah the problem is each vm will have a different local password.
I guess a get stat on cpu usage could help narrow it down I wouldn't use it as a definitive list but could help me get a list to email users asking to confirm if in use or not?
That would be a good starting point.
Provided you know the owner of each VM.