Как я могу запустить этот скрипт PowerShell в новом скрытом окне - PullRequest
0 голосов
/ 06 сентября 2018

Я работаю над приложением «Планирование перезагрузки», которое будет использоваться на простых удаленных компьютерах. Это должно быть удобно для пользователя, поэтому я должен иметь несколько сценариев и задач в фоновом режиме. мой основной скрипт GUI должен запустить Secondary Script в новом скрытом окне, чтобы Main GUI Script мог закрыться.

Вторичный сценарий (Reboot.ps1) будет работать до перезагрузки компьютера, если у пользователя запланирована перезагрузка.

Приведенный ниже код запускает Secondary Script скрытым, но как своего рода «дочернее задание», так как этот сценарий может выполняться «навсегда», он не закончится, оставляя Main GUI script заморожен, открыт, пока не убит в диспетчере задач (не очень удобный для пользователя, я знаю ..)

    $program = Powershell.exe -windowstyle hidden -file "C:\Reboot.ps1"
    $scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock("Invoke-Command {$program}")
    Invoke-Command -NoNewScope -Scriptblock $scriptblock

Итак, я спрашиваю, знает ли кто-нибудь, как запустить Вторичный сценарий в новом окне PowerShell, экземпляре, окружении, всем, что позволяет Main GUI Script закрыться , Предпочтительно менее интенсивно, если это возможно. :) спасибо!

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Используйте Start-Process собственный -WindowStyle Hidden параметр для запуска вашего скрипта скрытно и асинхронно (Start-Process по умолчанию):

Start-Process -WindowStyle Hidden powershell.exe -Args '-File', 'C:\Reboot.ps1'
0 голосов
/ 06 сентября 2018

Ваш код выглядит действительно сложным для того, чего вы пытаетесь достичь, используйте Start-Process

Start-Process powershell.exe -ArgumentList '-windowstyle hidden -file "C:\Reboot.ps1"'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...