繁体   English   中英

Windows 7 UAC提升

[英]Windows 7 UAC elevation

我有一个想以管理员身份在应用程序中运行的线程。 我可以愉快地以默认用户级别( asInvoker )运行该应用程序的其余部分。 这可能吗? 我注意到有一个“ ImpersonateLoggedOnUser”功能。 我可以以某种方式使用它来登录管理员,然后获得模拟该人的线程吗?

似乎这应该是一件很琐碎的事情……但是似乎没有任何明显的方法可以做到。 谁能帮我吗?

编辑:因此,如果我必须启动一个单独的进程,则可以通过任何方法CreateProcess一个新进程,并使其从特定入口点启动。 我当然可以使用命令行处理来执行此操作,但是我真的希望我可以阻止用户输入命令行并启动无法关闭的过程!

不,海拔是按进程而不是线程。

如果应用程序的其余部分必须非提升运行,则可以使用某些参数( myapp.exe /uac "ipcparamhere" )以提升的方式运行自己,并使用某种进程间通信将其通信回给您的应用。 (如果提升后的进程仅执行简单的操作,则可以使用该进程的退出代码来检查是否成功)

这是不可能的。 您需要通过在应用程序中包含清单来获得管理员特权。 Google“ requireAdministrator”找到您需要的清单。 您的用户可能很快就会一遍又一遍地执行此操作,最好的选择是将需要这些特权的任务分解为一个单独的进程。 例如服务。

您可以启动一个单独的exe并在其上显示清单,提示它需要管理员。 然后确保使用带有清单的shell execute启动它,并且一切就绪。 仔细考虑一下,将UAC防护罩放在启动该线程的按钮上。 (如果您是手工完成,则向其发送BCM_SETSHIELD消息。)

您可以在单独的过程中决定是否要显示窗口。 同时,用户仍然可以拖放到主应用程序中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM