我正在开发一个Reboot Scheduling应用程序,用于简单的远程计算机。它必须是用户友好的,所以我必须在后台有多个脚本和任务。我的主GUI脚本需要在新的隐藏窗口中启动辅助脚本,以便主GUI脚本可以关闭。
如果用户有计划的重新启动挂起,则辅助脚本(Reboot.ps1)将一直运行,直到计算机重新启动。
下面的代码启动隐藏的辅助脚本,但作为一种“子作业”,因为这个脚本可以“永远”运行,所以它不会结束,从而使主GUI脚本冻结,直到在任务管理器中被杀死(我不知道用户友好。 。)
$program = Powershell.exe -windowstyle hidden -file "C:\Reboot.ps1"
$scriptblock = $ExecutionContext.InvokeCommand.NewScriptBlock("Invoke-Command {$program}")
Invoke-Command -NoNewScope -Scriptblock $scriptblock
所以我要问的是,是否有人知道如何在新的PowerShell窗口,实例,环境以及允许主GUI脚本关闭的任何内容中启动辅助脚本。优选地,尽可能不那么强烈。 :) 谢谢!
使用Start-Process
自己的-WindowStyle Hidden
参数隐藏和异步启动脚本(Start-Process
的默认值):
Start-Process -WindowStyle Hidden powershell.exe -Args '-File', 'C:\Reboot.ps1'
使用Start-Process
,您的代码看起来非常复杂
Start-Process powershell.exe -ArgumentList '-windowstyle hidden -file "C:\Reboot.ps1"'