Your vSwitches visible in vSphere client are allocated names, e.g. vSwitch0, vSwitch 1 and so on. In order to create dvSwitches (Distributed vSwitches), you need to point vSphere Client at a VirtualCenter Server, not directly at an ESX host in order to access the enterprise features enabled therein.
Going back to pain old vSwitches though, the names need to match if you have VMotion VMKernel ports contained inside them, and if they don’t then it won’t work.
You soon realise that you can’t rename a vSwitch from within vSphere Client either – oh no! Deleting it and recreating it may be a problem too if there are VM’s living inside an internal Virtual Machines network that cannot be VMotioned away to another host.
The good news is that you can fix this scenario using the “unsupported” console on the ESX host.
At the ESX Console, log in and hit Alt-F1 then type unsupported and hit Enter. You won’t see the word “unsupported” appear as you type it but upon hitting Enter, you’ll be prompted for the root password. Type it in and hit Enter.
You be presented with a Linuxesque command prompt. If you don’t do vi, go find someone who does or you’re about to break stuff.
Search for “name” using Esc, /name, Enter and keep hitting n (next) until you find the incorrectly named vSwitch. Change the word by hitting Esc, cw followed by the correct name, followed by Esc.
/net/vswitch/child/name = “vSwitch4“
If you’re happy the name has been changed correctly in esx.conf, hit Esc, :wq! and hit Enter to write the changes back to disk and quit vi.
Back at the Linux prompt, type clear to clear the screen, and type exit and hit Enter to log out of the console.
Alt-F2 will close the “Unsupported Console” returning you back to the black and yellow ESX Console.
Esc to log out, then finally F11 to restart the host.
When the ESX host restarts, you can reconnect using vSphere Client and the vSwitch will now have the correct name.