In either ESX 3.x or vSphere, if there are disk array or networking issues, some Virtual Machines may appear in the vSphere Client as being "Invalid" and they are greyed out. To fix these VM's, we have been able to follow the below steps successfully. We tried steps as given to us from VMware support and various other steps that we found on Google (including restarting the VMware Management services on the ESX host) but after finding some of the steps below off the VMware Community Forums (which worked for us) here's the procedure we came up with.
1. via the VI Client, make a note of the invalid VM name, the ESX host it lives on, and the datastore where the VM's files are (all from the 'summary' page of the VM).
2. Remove the invalid VM from inventory (by Right clicking on the VM and choosing "Remove from Inventory).
3. SSH (with Putty or some other method) into the ESX host (from step 1), cd into the datastore volume (from above), rename the 'vm-name'.vmxf file (note it is the vmxf file, not the vmx file) to something else.
4. Connect the VI Client to the specific ESX host (from step 1, not your vCenter Server), browse the datastore (from step 1), find the 'vm-name'.vmx file, right click and 'add to inventory'
5. In the main VI Client connected to your vCenter Server, power on the VM, which should now be available and no longer "invalid" and greyed out.
You can also do the rename of the .vmxf file from within the VI Client that's connected to vCenter. Just identify everything from step 1, above, remove the invalid VM from inventory, browse the datastore, right click the vmxf file, rename it, add the vmx file to inventory, power up the VM. Seems to work great all within the VI Client.