Windows 7 在会话0中抑制Windows7消息

Windows 7 在会话0中抑制Windows7消息,windows-7,wix,windows-installer,Windows 7,Wix,Windows Installer,我们有一个windows服务,可以在后台的用户系统上安装和运行,但在某些windows机器上,用户会收到一个错误“某个设备或程序已请求您的注意”,这是windows 7特有的 这是因为当我们使用MSI(使用WIX创建)在用户计算机上安装.exe时,我相信安装程序作业会在会话0上运行,当出现任何提示时,会提示用户程序已请求注意,并切换到会话0。我们是否可以抑制会话0中运行的安装程序或exe的消息 谢谢。要解决此问题,您必须确定如果用户切换到会话0,将显示什么UI,显示什么以及如何删除它 服务在会话

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

这是因为当我们使用MSI(使用WIX创建)在用户计算机上安装.exe时,我相信安装程序作业会在会话0上运行,当出现任何提示时,会提示用户程序已请求注意,并切换到会话0。我们是否可以抑制会话0中运行的安装程序或exe的消息


谢谢。

要解决此问题,您必须确定如果用户切换到会话0,将显示什么UI,显示什么以及如何删除它

服务在会话0上运行。在WindowsVista之前,他们可以与桌面交互,很多人都是这样做的。您的服务可能试图显示一些UI。一旦检测到这一点,Windows将尝试帮助您解决问题。修复服务以避免显示UI,消息就会消失


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

要修复此问题,您必须确定如果用户切换到会话0,显示什么UI,以及如何删除它

服务在会话0上运行。在WindowsVista之前,他们可以与桌面交互,很多人都是这样做的。您的服务可能试图显示一些UI。一旦检测到这一点,Windows将尝试帮助您解决问题。修复服务以避免显示UI,消息就会消失


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

Michael是正确的,但我想对其进行一点扩展

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


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

迈克尔是对的,但我想进一步说明一下

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


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

我们试图让所有可执行文件在没有控制台的情况下运行。我们的EXE是内置的GO,其中一些在安装过程中运行,并显示控制台窗口不到一秒钟,用户甚至可能没有注意到这一点。这适用于所有其他Windows平台,但在Windows 7上失败,因此我们尝试使用“go build-ldflags-Hwindowsgui filename.go”选项,以便我们的EXE不会将控制台附加到它自己。我不认为作为一个控制台应用程序会在这里产生问题,但我已经有一段时间没有在Windows7上测试了。我从未测试过用go编写的服务。也许在你的问题中再加上一些,这样有相关经验的人就更有可能插嘴。(同时,通过跳过服务安装以查看症状是否消失,确保您找到了正确的罪魁祸首。)嘿,更新,从控制台分离.exe似乎已经解决了问题。我们正在尝试使所有可执行文件在没有控制台的情况下运行。我们的EXE是内置的GO,其中一些在安装过程中运行,并显示控制台窗口不到一秒钟,用户甚至可能没有注意到这一点。这适用于所有其他Windows平台,但在Windows 7上失败,因此我们尝试使用“go build-ldflags-Hwindowsgui filename.go”选项,以便我们的EXE不会将控制台附加到它自己。我不认为作为一个控制台应用程序会在这里产生问题,但我已经有一段时间没有在Windows7上测试了。我从未测试过用go编写的服务。也许在你的问题中再加上一些,这样有相关经验的人就更有可能插嘴。(同时,通过跳过服务安装以查看症状是否消失,确保找到了正确的罪犯。)嘿,更新,从控制台分离.exe似乎解决了问题。