powershell.exe has the -EncodedCommand parameter specifically to help you deal with weird parsing issues like this. You just need to convert your command to a base64 string (examples for this are in powershell.exe /?). For example:

If you run that code, it puts the base64 representation of your command in the clipboard (assuming you're running a version of PowerShell with the Set-Clipboard command, of course.) Then you just need to call powershell.exe like this: