Powershell WPF GUI 作为计划任务不可见
Powershell WPF GUI not visible as scheduled task
我正在编写一个向用户显示 WPF GUI 的 PowerShell 脚本。任务计划程序应该每天在特定时间 运行 此脚本。
脚本在我手动启动时工作正常,但当我使用任务计划程序安排它时,GUI 不会显示。任务会进入'running'状态约半分钟,然后无误退出。在此期间,它在任务管理器中显示为后台进程。
任务是 运行 作为 SYSTEM
用户并使用这些参数启动 powershell.exe
:
-NonInteractive -NoProfile -Command "& { C:\path\to\script.ps1 }"
起初我遇到了 this blog post 中描述的错误,提供的说明修复了它。
现在我只看到 SYSTEM 用户已通过身份验证,并且使用任务中的参数调用了 Powershell。
任何人都可以就如何使 WPF window 可见或导致此错误的原因提供任何建议吗?
我正在 运行使用 .NET 3.5 版的 PowerShell v3。我已经在 Windows Server 2016 和 2012 上对此进行了测试。
Powershell 脚本:https://pastebin.com/xLw76arr
导出的任务XML:https://pastebin.com/JRTkeFSA
PowerShell.exe 不加载 WPF 程序集。您需要在脚本中强制加载程序集:
Add-Type –AssemblyName PresentationFramework
Add-Type –AssemblyName PresentationCore
Add-Type –AssemblyName WindowsBase
你能显示用于显示 WPF 窗体的代码吗?
- 为什么要使用 SYSTEM 帐户?
- 为什么要使用 powershell.exe 的 -NonInteractive 参数?
您应该使用登录用户在执行期间查看 WPF 表单。
我正在编写一个向用户显示 WPF GUI 的 PowerShell 脚本。任务计划程序应该每天在特定时间 运行 此脚本。
脚本在我手动启动时工作正常,但当我使用任务计划程序安排它时,GUI 不会显示。任务会进入'running'状态约半分钟,然后无误退出。在此期间,它在任务管理器中显示为后台进程。
任务是 运行 作为 SYSTEM
用户并使用这些参数启动 powershell.exe
:
-NonInteractive -NoProfile -Command "& { C:\path\to\script.ps1 }"
起初我遇到了 this blog post 中描述的错误,提供的说明修复了它。 现在我只看到 SYSTEM 用户已通过身份验证,并且使用任务中的参数调用了 Powershell。
任何人都可以就如何使 WPF window 可见或导致此错误的原因提供任何建议吗?
我正在 运行使用 .NET 3.5 版的 PowerShell v3。我已经在 Windows Server 2016 和 2012 上对此进行了测试。
Powershell 脚本:https://pastebin.com/xLw76arr
导出的任务XML:https://pastebin.com/JRTkeFSA
PowerShell.exe 不加载 WPF 程序集。您需要在脚本中强制加载程序集:
Add-Type –AssemblyName PresentationFramework
Add-Type –AssemblyName PresentationCore
Add-Type –AssemblyName WindowsBase
你能显示用于显示 WPF 窗体的代码吗?
- 为什么要使用 SYSTEM 帐户?
- 为什么要使用 powershell.exe 的 -NonInteractive 参数?
您应该使用登录用户在执行期间查看 WPF 表单。