Powershell WPF GUI 作为计划任务不可见

问题描述 投票:0回答:3

我正在编写一个向用户显示 WPF GUI 的 PowerShell 脚本。任务计划程序应该每天在特定时间运行此脚本。

当我手动启动脚本时,脚本工作正常,但是当我使用任务计划程序安排它时,GUI 将不会显示。该任务将进入“运行”状态大约半分钟,然后退出且没有错误。在此期间,它在任务管理器中显示为后台进程。

任务以

SYSTEM
用户身份运行,并使用以下参数启动
powershell.exe

-NonInteractive -NoProfile -Command "& { C:\path\to\script.ps1 }"

起初我遇到了这篇博文中描述的错误,并且提供的说明修复了它。 现在我只看到 SYSTEM 用户已通过身份验证,并且使用任务中的参数调用了 Powershell。

任何人都可以提供有关如何使 WPF 窗口可见或导致此错误的原因的任何建议吗?

我正在运行 PowerShell v3 和 .NET 版本 3.5。我已经在 Windows Server 2016 和 2012 上对此进行了测试。

Powershell 脚本:https://pastebin.com/xLw76arr

导出的任务 XML:https://pastebin.com/JRTkeFSA

wpf powershell scheduled-tasks windows-server
3个回答
2
投票

您能展示一下用于显示 WPF 表单的代码吗?

  • 为什么使用SYSTEM帐户?
  • 为什么要使用powershell.exe的-NonInteractive参数?

您应该使用登录用户在执行期间查看 WPF 表单。


0
投票

PowerShell.exe 不加载 WPF 程序集。您需要在脚本中强制加载程序集:

Add-Type –AssemblyName PresentationFramework
Add-Type –AssemblyName PresentationCore
Add-Type –AssemblyName WindowsBase

0
投票

我在某处读到,当脚本作为计划任务运行时,它在非交互模式下工作。因此,在您的情况下它没有显示任何错误,它只是不显示 GUI。当我也试图让登录表单在事件触发时出现时,我亲眼目睹了这一点,但我失败了很多次,然后阅读了这个概念

© www.soinside.com 2019 - 2024. All rights reserved.