如何在新的隐藏窗口中启动此PowerShell脚本

时间:2018-09-06 20:07:59

标签: powershell

我正在研究要在简单远程计算机上使用的Reboot Scheduling应用程序。它必须对用户友好,因此我必须在后台使用多个脚本和任务。我的主GUI脚本需要在新的隐藏窗口中启动辅助脚本,以便可以关闭主GUI脚本

次要脚本(Reboot.ps1)将一直运行,直到用户重新启动计算机后重新启动。

下面的代码开始隐藏辅助脚本,但作为一种“子作业”,由于该脚本可以“永远”运行,因此不会结束,因此留下了 Main GUI脚本冻结打开,直到在任务管理器中被杀死(我不十分友好)。

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

所以我要问的是,是否有人知道如何在新的PowerShell窗口,实例,环境以及允许 Main GUI脚本的任何东西中启动辅助脚本。关闭。优选地,如果可能,降低强度。 :)谢谢!

2 个答案:

答案 0 :(得分:2)

使用Start-Process自己的-WindowStyle Hidden参数隐藏并异步启动脚本(默认为Start-Process

Start-Process -WindowStyle Hidden powershell.exe -Args '-File', 'C:\Reboot.ps1'

答案 1 :(得分:-1)

对于您要实现的目标,您的代码看起来真的很复杂,请使用Start-Process

Start-Process powershell.exe -ArgumentList '-windowstyle hidden -file "C:\Reboot.ps1"'