Ucieczka przed parametrami jest zwykle źródłem frustracji i sprawia wrażenie straconego czasu. Widzę, że korzystasz z wersji 2, więc sugerowałbym użycie techniki, o której jakiś czas temu pisał na blogu Joel „Jaykul” Bennet .
Krótko mówiąc: po prostu owijasz swój ciąg znakiem @ '...' @:
Start-Process \\server\toto.exe @'
-batch=B -param="sort1;parmtxt='Security ID=1234'"
'@
(Pamiętaj, że założyłem, które cudzysłowy są potrzebne i przed którymi rzeczami próbujesz uciec). Jeśli chcesz pracować z wynikiem, możesz dodać-NoNewWindow przełącznik.
BTW: to był tak ważny problem, że od wersji v3 możesz użyć, --%aby zatrzymać parser PowerShell przed robieniem czegokolwiek z twoimi parametrami:
\\server\toto.exe --% -batch=b -param="sort1;paramtxt='Security ID=1234'"
... powinno tam działać dobrze (przy tym samym założeniu).