【问题标题】:how to display popup window from windows service running a powershell script如何从运行PowerShell脚本的Windows服务显示弹出窗口
【发布时间】:2012-09-06 07:58:22
【问题描述】:

我编写了一个在 Windows 服务中运行的豪华脚本。从计算机上的特定操作,我需要显示一个弹出窗口警告用户。

$popupMsg = @" message "@   
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Windows.Forms.MessageBox]::Show($user+ $popupMsg,"Remote Connection Information","OK","Warning")

当我从 PowerGui 运行此脚本时,弹出窗口显示正常,但当我运行运行此脚本的 windows 服务时,弹出窗口不会显示。 这有什么问题?谢谢大家!

【问题讨论】:

  • 服务根据定义是非交互式的。要显示一个对话框,您必须调用前台脚本,如上。

标签: powershell windows-services


【解决方案1】:

尝试在服务设置中设置“允许服务与桌面交互”:

【讨论】:

  • 我不能这样做,因为我正在使用“此帐户”选项来指定允许运行服务的应用登录
【解决方案2】:

您希望支持哪个版本的 Windows? Session 0 Isolation 将阻止您在 Vista 及更高版本的用户桌面上显示任何类型的 GUI。

【讨论】:

  • 不幸的是,我基本上使用的是 Win 7 和一点点 win xp ......所以我想我没有解决方案......让我的服务启动一个 .exe 文件怎么样当计时器滴答作响?这样能行吗?
  • Launching an exe in the user's session 是一个选项,但可能有点矫枉过正。如果你能弄清楚用户会话的ID,你可以使用WTSSendMessage在那里显示一个消息框。
猜你喜欢
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 2010-12-20
  • 2022-06-13
  • 1970-01-01
  • 2014-12-17
相关资源
最近更新 更多