So, it turns out it's not the run command, as I originally thought. After more digging, I discovered that powershell formats output differently depending on whether it is outputting to a console or to another process, and that when it outputs to another process it auto-formats the output.
This still doesn't fix my issue with the auto-formatting breaking WinRPM, but at least I now know where to start looking.