我正在编写一个应用程序,它是一种自定义公司设置。这个应用程序做了很多任务,其中一些需要提升。
我包含了一个清单,以便当应用程序启动时 UAC 要求用户提升。
其中一项任务是将一些网络驱动器(带有WNetAddConnection
)映射到远程服务器。这些映射应该是持久的。到目前为止一切顺利,除了当应用程序关闭时,用户看不到应用程序刚刚映射的驱动器。
经过一番研究(https://serverfault.com/a/185885/147818),我了解到当用户登录时,它的会话收到 2 个令牌,一个具有低权限,另一个具有完全权限,使用的那个在需要提升时运行进程。
我的问题:我的应用程序是否有可能启动一个线程来获取当前用户过滤的令牌,当应用程序的任务完成时,用户可以在资源管理器中看到网络驱动器?
可以用这个令牌模拟线程吗?
我知道这些可能的解决方法:
- 重新设计应用程序,以便仅将一些需要提升的特定任务封装在 COM 对象中。
- 使用设置调整注册表
EnableLinkedConnections
(需要用户的会话重新启动)
但由于某些原因,这些解决方案都不是一种选择。
任何帮助将不胜感激