powershell - 任务计划的 Powershell 脚本不显示消息框

标签 powershell messagebox taskscheduler

我有一个 Powershell 脚本,它计划在多个主机上过夜运行。
它由任务计划程序中设置的 CMD 脚本(包装器)执行。

在某些情况下,我需要向用户显示一条消息,该消息将在早上到达,让他决定是继续执行脚本还是中止它。

我正在使用 system.windows.froms.MessageBox::Show("My Message","status","4") 来显示消息。

当我从 Windows PowerShell ISE 控制台执行 CMD 脚本时,它工作得很好,但是如果我从任务调度程序执行它,它会跳过弹出消息。

有没有解决这个问题的办法?

最佳答案

计划任务必须设置为“仅在用户登录时运行”才能与桌面交互(例如显示对话框)。
因此,如果主脚本必须在后台运行(即使没有用户登录),您应该将程序逻辑拆分为从 2 个计划任务运行的 2 个脚本:

  • 一项运行后台脚本的计划任务,“无论用户是否登录都运行”
  • 运行脚本的单独计划任务,该脚本检查后台任务是否仍在运行,并显示对话框。此“GUI 任务”需要设置为“仅在用户登录时运行”并在 ex 上触发。 “登录时”。

  • 显然,这 2 个脚本必须以某种方式进行通信(通过文件、REST api 或其他方式)

    关于powershell - 任务计划的 Powershell 脚本不显示消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35891641/

    相关文章:

    powershell - powershell 在命令提示符模式下是否有类似 "echo off"的内容?

    c# - 代码在 c# dll 和 powershell 中表现不同

    powershell - 在哈希表中搜索一个键并平均关联值 Powershell

    c# - 从线程启动时模态弹出窗口失败 - CSharp WPF

    c++ - 在任务调度程序 C++ 中编辑现有任务

    windows - 如何让任务调度程序从 powershell 脚本中检测失败的错误代码

    function - 如何使公共(public)功能

    c# 一个漂亮的通知框

    c++ - 在 QmessageBox 中显示图像

    c# - Task Scheduler Managed Wrapper 不显示所有任务