我有一个控制台应用程序,用于监视所有Windows进程,等待特定进程出现,然后使用UI 自动化使用它。它只分发给需要它并愿意安装它的人,因此它不会做任何恶意软件。
现在,它通过要求管理员权限来工作,以便它可以监视所有进程并捕获该特定进程。然而,我们面临的问题是用户使用像Citrix这样的桌面虚拟化软件。他们没有管理员权限,并且不能被授予任何安全预防措施。
我想到的三种选择是:
以管理员- 身份创建桌面快捷方式,只需输入一次管理员凭据,以便之后普通用户可以使用它,但事实证明这不是一个选项,因为管理员不能以任何方式参与等式。
- 第二个是重新设计应用程序,以便它将使用Windows服务,该服务将捕获进程的到达然后执行工作,但事实证明Windows服务无法与桌面会话一起使用,这意味着它无法使用UI自动化,这使得应用程序无用。
- 也许添加一些类似获取所有进程并按名称搜索所需进程的东西,但是这种情况的重复出现频率必须太小(小于一秒(,如果进程太多会导致问题
我想知道是否可以做些什么来解决这个问题/绕过它。到目前为止,我找不到在没有管理员权限的情况下捕获所需进程的方法
只需使用 Windows 服务(作为管理员(和桌面应用程序。
Windows 服务执行需要管理员权限的所有内容,桌面应用程序负责 UI 任务。程序可以通过命名管道、共享内存或环回网络套接字进行通信。
免責聲明
确保保护进程间通信。其他用户进程不应使用服务的管理员权限。