我正在开发一个分区磁盘程序,让我阅读\\\\.\\PhysicalDrive0
我需要管理员权限。
我想知道在运行时是否有可能让程序获得管理员权限?那有没有赢得api?
我想这样做是因为我希望程序只在读取/写入磁盘时才能使用管理员权限执行。出于安全原因,我不希望程序一直以管理员权限执行,因为有人可能会在某个模块中发现错误(例如堆栈或堆溢出)并执行任意命令作为adm。
答案 0 :(得分:13)
进程启动后,您无法获取提升的权限。您的选择是:
requireAdministrator
清单显示。答案 1 :(得分:5)
一旦进程开始执行,我从未见过转换权限的方法。我所知道的唯一方法是将进程创建为特权。
如果有其他方法,我期待其他答案。
(更新)
文章Teach Your Apps To Play Nicely With Windows Vista User Account Control(大约一半)确认只有在流程创建时才能授予管理员权限。
答案 2 :(得分:2)
您需要使用requireAdministrator标志嵌入清单
答案 3 :(得分:1)
Project的Propeties(Alt + Enter)->
链接器->
清单文件
->
UAC执行级别(在VS2015中,2010年类似)
->
requireAdministrator或highestAvailable
编辑:此外,如果它正在更新程序,只需将您的程序名称以Update
开头,Windows将自动识别它。