在会话0中抑制Windows7消息

时间:2017-09-07 09:33:51

标签: windows-7 wix windows-installer

我们有一个Windows服务安装并在后台运行在用户系统上,但在某些Windows机器上,用户会收到错误“设备或程序已请求您注意”这是Windows 7特有的。

这是因为当我们使用MSI(使用WIX创建)在用户计算机上安装.exe时,我认为安装程序作业在会话0上运行,当出现任何提示时,系统会提示用户程序已请求注意然后他会切换到Session 0.我们可以在会话0中禁止安装程序或exe运行的消息。

感谢。

2 个答案:

答案 0 :(得分:3)

要解决此问题,您必须确定在用户切换到会话0时显示的UI,显示的内容以及如何删除它。

服务在会话0上运行。在Windows Vista之前,他们可以与桌面进行交互,因此很多人都这样做了。您的服务很可能是尝试显示一些UI。检测到此后,Windows正试图帮助您。修复服务以避免显示UI,消息将消失。

对于系统上下文中的延迟自定义操作(因为这些操作由Windows Installer服务调用)也可能发生这种情况,这是合理的,但我从未遇到过这种情况。如果是这样,修复方法是相同的:使该操作不显示任何UI。

答案 1 :(得分:2)

迈克尔是对的,但我想稍微扩展它。

问题主要不在于会话0或服务。它是关于任何的,它试图显示不属于交互式用户当前会话的UI。主要问题是粉碎攻击,其中(例如)与系统(或其他特权)帐户一起运行的东西向(可能是有限的)交互用户显示UI。进入特权进程的窗口是一个安全漏洞。因此,安装尝试使用显示UI的系统帐户(延迟CA)运行自定义操作是一个问题,服务也是如此。会话0实际上只是旨在解决安全问题的实现的一部分。

所以,是的,在安装中解决来自您的服务和(主要是延迟的)自定义操作的UI尝试。