PowerShell expects the application to behave in a 'cmd.exe'-compatible way, so it is important to leave all SM_ENCODING_xxxx variables unset. The defaults already auto-initialize to 'cmd.exe'-compatible values. Since PowerShell itself post-processes output from 'cmd.exe' style into UTF-16LE, the only way to get it back into a form that ITOps software accepts (UTF-8) is to further post-process it with a transcoder utility. PowerShell provides 'Out-File' for this purpose.
sm_server "--version" > version.out
sm_server "--version" " Out-File -Encoding utf8 version.out
The first example will result in the 'version.out' file encoded as UTF-16LE. This is fine if you intend to view it with a UTF-16LE-capable text editor. If the output is to be parsed by another ITOps application, then the second (piped) form must be used to result in the 'version.out' file encoded as UTF-8.