diff --git a/src/rezplugins/shell/_utils/powershell_base.py b/src/rezplugins/shell/_utils/powershell_base.py
index <HASH>..<HASH> 100644
--- a/src/rezplugins/shell/_utils/powershell_base.py
+++ b/src/rezplugins/shell/_utils/powershell_base.py
@@ -3,11 +3,13 @@ import re
 from subprocess import PIPE
 
 from rez.config import config
+from rez.vendor.six import six
 from rez.rex import RexExecutor, OutputStyle, EscapedString
 from rez.shells import Shell
 from rez.system import system
 from rez.utils.platform_ import platform_
 from rez.utils.execution import Popen
+from rez.util import shlex_join
 
 
 class PowerShellBase(Shell):
@@ -305,3 +307,11 @@ class PowerShellBase(Shell):
     @classmethod
     def line_terminator(cls):
         return "\n"
+
+    @classmethod
+    def join(cls, command):
+        if isinstance(command, six.string_types):
+            return command
+
+        # add call operator in case executable gets quotes applied
+        return "& " + shlex_join(command)
fix for powershell in cases where the executable command string gets quoted