Creating a new process is inefficient and also visible to applications. You don't need to duplicate the code, it can be factored out in a couple of handlers used in both command line and interactive mode. In interactive mode you'd run a loop that accepts commands and executes them, until you hit 'quit' or 'exit'.
wmic not handling spaces in the property list (unless quoted) is a bug, but you should be able to reuse process_property_list().