powershell – 如何运行预定的作业启动以使其具有交互性

我无法想办法让一个预定的作业在启动时运行,它运行但只是在后台,而不是交互式,虽然我已将作业选项设置为交互式:

Register-ScheduledJob -Name runatstartup `
    -ScriptBlock { start chrome } `
    -Trigger (New-JobTrigger -AtStartup)

Set-ScheduledTask -TaskName runatstartup `
    -TaskPath Microsoft\Windows\PowerShell\ScheduledJobs `
    -Principal (New-ScheduledTaskPrincipal -Logontype Interactive -Userid $env:USERNAME)

相同的命令工作正常,如果我用-atlogon或-once,-daily替换-atstartup,程序会正常显示.
谁能帮我这个?

最佳答案 AtStartup是在登录屏幕显示之前,因此没有“桌面”可以与之交互.一旦您登录(手动或自动作为启动过程的一部分),将启动一个新的桌面会话,但您的程序已经启动,并且不会与新启动的桌面关联.

切换到AtLogin,或者如果您正在使用某些其他程序而不是Chrome,那么您可以控制代码将代码拆分为两个,并使一个服务在启动时启动,另一个服务在登录时启动.

点赞