启动具有管理员权限的应用程序后,在该应用程序中使用sudo: npm: command not found
执行的程序将继承管理员权限。但这不是我想要的:它必须在没有额外权限的情况下定期开始。 ShellExecute
接受参数ShellExecute
(常规)和OPEN
(管理员)。但是,如果您在以管理员身份启动应用程序后使用RUNAS
,它仍然像OPEN
一样。
以下示例演示了这一点:如果您使用常规权限启动它,则会显示“已开始常规”。一旦你为'admin'按1,它将以管理员身份启动。如果在新创建的提示中按2,则不会启动“常规”提示,而是“管理员”提示。
我在RUNAS(https://superuser.com/a/374866)中发现了一些关于某些参数的内容,但它们无法在RUNAS
中传递。有什么想法吗?
ShellExecute
答案 0 :(得分:3)
我曾经在创建安装程序时解决这个难题,这是可能的解决方案之一。
我们的想法是创建一个以用户权限运行的后台进程,主应用程序与之通信并让它知道要启动哪个程序 - 启动的进程将具有用户权限。
它应该像这样工作: 后台进程像往常一样启动,具有用户权限。启动时,它会以管理员身份启动您的主程序。后台进程保持隐藏状态并等待主进程发出的命令。