I'm not sure what you're trying to achieve.
As Burak mentioned, you need to assign the subnet of your client to the site you wish it will pick a DC from.
You cannot arbitrarily pick a domain controller. This would introduce a single point of failure that the Netlogon service is actually trying to avoid. Now in your case because you have only one DC per site, you are kinda tricking the system. Even though
you cannot point to a specific DC, you can trick the client DCLocator process and make it think it belongs to a different site (for test purpose).
Example: if you are on a machine that belongs to the SVVM site because its subnet is assigned to this site. You are using the DC of the SVVM site. If you modify the registry value called SiteName under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
and set the value VM2, now your machine will think it is assigned to the VM2 site and therefore use the DC of that site. The change isn't dynamic though. By default, since Windows Vista/Window Server 2008, Netlogon keeps a cache entry for 12 hours. So your
machine will not try to discover a new DC nor in which site it is assigned for potentially up to 12 hours (unless the current DC become unreachable). If you want to force Netlogon to rediscover a domain controller right now, you can use the same command you
mentioned but add the /force parameter:
nltest /dsgetdc:domain.com /force
Also note that you cannot trust the SET LogonServer to determine what DC you are currently using. This is a legacy environment variable that is never updated after the initial logon. The proper way to check is again the command you mentioned: nltest.