我只想运行安装在Program Files和Program File(x86(文件夹中的本地桌面应用程序,该应用程序应该以登录用户上下文的管理员权限运行。我在谷歌上搜索了一下,了解了一些。
根据我的想法需要:-
- 带有Socket客户端的文件资源管理器GUI
- A服务
- 使用Socket服务器启动本地应用程序可执行文件(控制台应用程序(
注意:文件资源管理器之间的通信将使用套接字客户端和服务器进行。该服务将在系统上下文中启动本地应用程序服务器
假设安装了文件资源管理器、服务和应用程序启动服务器。使用文件资源管理器,将选择应用程序,并将选定的应用程序信息发送到服务器。服务器将检查请求的路径是否来自受信任路径。
如果它来自受信任路径,服务器将从"winlogon.exe"获取句柄并获取访问令牌的句柄,然后复制访问令牌并调整其权限(默认系统权限将存在,我不希望这样,因为系统将具有完全权限(,然后使用CreateProcessAsUser启动应用程序。
一旦启动,将UI带到前台。应用程序需要在具有管理员权限的用户上下文中运行。
我的问题如下:-
- 要实现这一点,我需要在服务
- 如果需要互动用户和本地服务器正在使用套接字,而用户没有直接和服务互动,只是想知道我是不是遵循下面所述的Microsoft安全措施文件还是我违反了它?。https://learn.microsoft.com/en-us/windows/win32/services/interactive-services
- 我们有其他方法可以通过管理员启动应用程序吗登录用户上下文中的权限,而没有实际的管理员权限
目标操作系统是Windows 10 1803和1809。
看看工具psexec
或paexec
(它们大多相同,主要区别在于后者是开源的(。
这些工具允许您以另一个用户和/或在另一台计算机上启动进程。这也应该在服务中起作用。