からPowerShellスクリプトを呼び出す:は、私はこのようなのpythonからPowerShellスクリプトを起動しようとしているのPython
psxmlgen = subprocess.Popen([r'C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe',
'./buildxml.ps1',
arg1, arg2, arg3], cwd=os.getcwd())
result = psxmlgen.wait()
問題は、私は次のエラーを取得ということです。事実にもかかわらず
File C:\Users\sztomi\workspace\myproject\buildxml.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
を私は以前Powershellでスクリプトを実行することを可能にしました。これは、管理者が実行したPS端末にSet-ExecutionPolicy Unrestriced
と入力することで可能になりました(もう一度やりました)。 PowerShell実行ファイルは、スタートメニューのショートカットが指すものと同じです。 Get-ExecutionPolicy
は、PowerShellをadminとして実行したかどうかに関係なく、正しくUnrestricted
を報告します。
PSスクリプトをPythonから正しく実行するにはどうすればよいですか?
、ありがとうございました!実際には、問題はWindows 7 x64のファイルシステムのリダイレクトが原因であることが分かりました。 (私はx64版では無制限のポリシーを持っていましたが、x86ではそうではなく、pythonはそれにリダイレクトされませんでした)。 –
サブプロセスで実行可能ファイルを呼び出す方法は完全にはわかりませんが、実際に呼び出されているコマンドは './buildxml.ps1'です。 –
@ someone-or-other buildxml.ps1はpowershellスクリプトファイルで、実行可能ファイル(コマンドであれば)は '' C:\ WINDOWS \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe ''です。リスト内のすべての項目は、この実行可能ファイルに渡されるパラメータです。 –