[PYTHON] 파이썬에서 PowerShell 스크립트 호출하기
PYTHON파이썬에서 PowerShell 스크립트 호출하기
파이썬에서 PowerShell 스크립트를 시작하려고합니다.
psxmlgen = subprocess.Popen([r'C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe',
'./buildxml.ps1',
arg1, arg2, arg3], cwd=os.getcwd())
result = psxmlgen.wait()
문제는 다음과 같은 오류가 발생합니다 :
이전에 관리자가 실행 한 PS 터미널에서 Set-ExecutionPolicy Unrestriced를 입력하여 이전에 Powershell에서 스크립트를 실행할 수있게 만들었다는 사실을 알리지 않았습니다. PowerShell 실행 파일은 시작 메뉴의 바로 가기가 가리키는 것과 동일합니다. Get-ExecutionPolicy는 PowerShell을 admin으로 실행했는지 여부에 관계없이 Unrestricted를 올바르게보고합니다.
파이썬에서 PS 스크립트를 올바르게 실행하려면 어떻게해야합니까?
해결법
-
==============================
1.첫째, Set-ExecutionPolicy Unrestricted는 사용자 단위 및 비트 당 기준 (32 비트는 64 비트와 다릅니다)입니다.
첫째, Set-ExecutionPolicy Unrestricted는 사용자 단위 및 비트 당 기준 (32 비트는 64 비트와 다릅니다)입니다.
둘째, 명령 줄에서 실행 정책을 무시할 수 있습니다.
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()
필자는이 경로로 32 비트 PowerShell에서 64 비트 PowerShell에 액세스 할 수 있습니다 (주석의 @eryksun 덕분).
powershell64 = os.path.join(os.environ['SystemRoot'], 'SysNative' if platform.architecture()[0] == '32bit' else 'System32', 'WindowsPowerShell', 'v1.0', 'powershell.exe')
-
==============================
2.arg1, arg2 및 arg3 값을 powershell에 전달한 후 값을 표시하는 방법을 알고 자했던 사람들은 다음을 수행해야합니다.
arg1, arg2 및 arg3 값을 powershell에 전달한 후 값을 표시하는 방법을 알고 자했던 사람들은 다음을 수행해야합니다.
Write-Host $args[0] Write-Host $args[1] Write-Host $args[2]
from https://stackoverflow.com/questions/6901856/invoking-a-powershell-script-from-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] int 객체는 반복 가능하지 않습니까? (0) | 2018.11.24 |
---|---|
[PYTHON] 파이썬 : 빌트인리스트 타입으로부터 어떻게 상속받을 수 있습니까? (0) | 2018.11.24 |
[PYTHON] ElementTree 요소에서 줄 번호를 가져 오는 방법이 있나요? (0) | 2018.11.24 |
[PYTHON] 파이썬 컬렉션. 카운터 : most_common complexity (0) | 2018.11.24 |
[PYTHON] 함수에서 전역 가져 오기를 만드는 방법은 무엇입니까? (0) | 2018.11.24 |