Вот подход, который не требует аргументов командной строки или отдельного модуля запуска. Это не совсем невидимо, потому что окно появляется мгновенно при запуске. Но затем он быстро исчезает. Там, где все в порядке, это, я думаю, самый простой подход, если вы хотите запустить свой скрипт, дважды щелкнув в проводнике или с помощью ярлыка в меню «Пуск» (включая, конечно, подменю «Запуск»). И мне нравится, что это часть кода самого скрипта, а не что-то внешнее.
Поместите это в начало вашего скрипта:
$t = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);'
add-type -name win -member $t -namespace native
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0)