I\'m trying to start a PowerShell script from python like this:
psxmlgen = subprocess.Popen([r\'C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.ex
First, Set-ExecutionPolicy Unrestriced is on a per user basis, and a per bitness basis (32-bit is different than 64-bit).
Second, you can override the execution policy from the command line.
psxmlgen = subprocess.Popen([r'C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe',
'-ExecutionPolicy',
'Unrestricted',
'./buildxml.ps1',
arg1, arg2, arg3], cwd=os.getcwd())
result = psxmlgen.wait()
Apparently you can access the 64-bit PowerShell from 32-bit PowerShell with this path (thanks to @eryksun in comments):
powershell64 = os.path.join(os.environ['SystemRoot'],
'SysNative' if platform.architecture()[0] == '32bit' else 'System32',
'WindowsPowerShell', 'v1.0', 'powershell.exe')