我正在编写一个向用户显示WPF GUI的PowerShell脚本。任务调度程序应该每天在特定时间运行此脚本。
手动启动时脚本正常工作,但是当我使用任务调度程序安排它时,GUI将不会显示。该任务将输入"运行"状态约半分钟,然后在没有错误的情况下退出。在此期间,它显示为任务管理器中的背景过程。
该任务作为SYSTEM
用户运行,并以这些参数启动powershell.exe
:
-NonInteractive -NoProfile -Command "& { C:pathtoscript.ps1 }"
首先,我得到了此博客文章中描述的错误,并将提供的指令修复了。现在,我只看到系统用户已进行了身份验证,并且在任务中调用了PowerShell。
。任何人都可以提供有关如何使WPF窗口可见的建议,或者可能出现此错误的原因?
我正在使用.NET版本3.5运行PowerShell V3。我已经在Windows Server 2016和2012上对此进行了测试。
powershell脚本:https://pastebin.com/xlw76arr
导出任务XML:https://pastebin.com/jrtkefsa
您可以显示用于显示WPF表单的代码吗?
- 为什么使用系统帐户?
- 为什么要使用powershell.exe的-noninteractive参数?
您应该使用记录的用户在执行过程中查看WPF表单。
powershell.exe不会加载wpf组件。您需要在脚本中强制加载组件:
Add-Type –AssemblyName PresentationFramework
Add-Type –AssemblyName PresentationCore
Add-Type –AssemblyName WindowsBase