Hi.
Your script looks fine. It should get the job done. Remember that SMC.exe is located in "C:\Program Files\Symantec\Symantec Endpoint Protection" by default. That means, your script either is run from that folder or you use:
start /wait "C:\Program Files\Symantec\Symantec Endpoint Protection\smc.exe" -stop
That being said, what are you trying to achieve? What problem have you got? Why are you revisiting this concept? Your most recent posts all relate to finding and cleaning up Hardware IDs. Remember that deleting the hw ID on the client does not touch the database in anyway. You will manually find & delete the duplicate computer object from the console.
The KB articles previously linked to do not mention other services that need to be stopped. Even the "Symantec Antivirus" service actually does not need to be stopped. Only SmcService, using smc -stop, needs to be stopped to replace the hw ID.
PS Another reason, if your script does not work, is because a password is required to stop the SmcService. Have you tried running the script locally and analyzing the output?