I'm using the same technology to power on the VMs, and we have a database with the VM names. And we have a naming convenction, the VM name must unique (do not contains any other server name! f.e: abc and abcd is not allowed).
And inside the code I use the following linq to search for the actual VM by name:
List<VMWareVirtualMachine> vitualMachines = virtualHost.RegisteredVirtualMachines.ToList();
VMWareVirtualMachine serverTofind = vitualMachines.Where(vm => vm.PathName.Contains("Your server name")).First();
I hope it hepls!