防止用户关闭某些应用程序

防止用户关闭某些应用程序

我有一个 Wpf(带 GUI 的 .Net 应用程序)应用程序,一家公司会将其安装在员工的计算机上。他们不希望用户能够从 TaskManager 中将其终止。该应用程序位于任务栏中;它监听传入的消息并显示有关新消息的通知;用户可以随时最大化/最小化它以查看消息的详细信息 - 但她不应该能够停止它。

我试图开发可以监视上述应用程序并重新启动它的 Windows 服务 - 但不幸的是,服务无法生成带有 GUI 的进程。

有没有什么管理方法可以禁止用户终止某些应用程序(或重新启动它)?

可以假设用户使用 Windows 8 或更高版本,并且他们在笔记本电脑上拥有管理权限。

答案1

编辑:我刚刚重读并意识到你不是那个编写 .Net 应用程序的人,这使我刚才建议的大部分内容无效。我会把它留在那里,以防其中的一些有用。但如果我有其他想法,我会回来的。

管理权限才是真正让人头疼的问题。很难做出管理员无法做的事情,因为这违背了基本的管理原则。

我能想到有三种方法可以做到这一点,其中两种并不完全符合你的要求,另一种则需要做很多工作......

1) 创建一个或多个后台进程来监控您希望保持活动的进程,并在进程不再存在时让其重新启动该进程。如果您创建了另外 2 个进程,它们可以互相监控以及监控主进程,这样,如果其中一个进程被终止,它们也会重新启动。这几乎就是您之前尝试过的做法,但不是服务,而是创建更多应用程序。

2) 比上面的更简单,但有点冒险并且可能不起作用:在您的 wpf 中添加一个总体“try...catch”语句,该语句在发生异常时重新启动该程序,本质上是在程序死亡时运行一个新实例......这可能会导致大量内存问题,因为旧实例可能不会在新实例关闭之前被清除。

3) 剥夺所有人的管理员权限,并创建一个专门的组,该组拥有用户需要管理员权限的所有操作的伪管理员权限,但不包括相关流程。这个选项很难,可能会导致很多用户感到沮丧。

我现在无法详细说明,但如果其中一个听起来是个不错的选择,并且您想要/需要更多详细信息,请告诉我,我会看看稍后可以做些什么。

答案2

Windows 服务可以访问计算机上的用户会话并借用用户令牌,然后使用该令牌启动应用程序并将其连接到Windows 工作站

瞧,您已经得到您所需要的了。

此时此刻,我不记得我使用过哪些 API,但我已经使用该技术启动了一个应用程序,让登录用户连接到我的一位同事的 Outlook 来发送恶作剧电子邮件。

相关内容