Since your post mentions "oShell.run", I guess you're dealing with VBScript and not VB code?
In general, a parent process passes its environment down to a child process. At the operating system level, you can usually specify a new environment for the child process (e.g. to pass it data, like you want to). It doesn't seem like this is available in VBScript, though, so you're probably limited to the way you're currently trying to do it, prepending /set before the command you want to run.
A thing that springs to mind is you do "set -ua" - I don't know what the "u" parameter is supposed to do (not listed on my system with "set /?"), but more generally Windows uses forward-slash for arguments, not dash.
Here's a little cmd.exe session, which I hope will be instructive:
How to -connect- Windows Visual Basic Apps with Windows Batch files?Also note that child environment is never propagated back to the parent process.