I'm calling Powershell like so:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -noninteractive -nologo -file "C:\Users\dummy\Documents\dev\powershell\samples\test.ps1"
I'm calling it from a python script, but the same problem can be observed if called via a shortcut. I thought the -NonInteractive
flag would cause Poweshell to execute in a hidden window, but it doesn't. Is there a way of supressing the console window when calling Powershell from an external application?
import subprocess
st_inf = subprocess.STARTUPINFO()
st_inf.dwFlags = st_inf.dwFlags | subprocess.STARTF_USESHOWWINDOW
subprocess.Popen(["notepad"], startupinfo=st_inf)
You can pass appropriate arguments to CreateProcess or Process.Start to suppress the console window.
However, PowerShell also has a -WindowStyle
parameter which you can set to hidden.