在Windows上运行的C++应用程序是否有可能在运行时删除权限?
例如,如果用户以管理员身份启动我的应用程序,但没有理由以管理员身份运行我的应用程序,我是否可以某种方式放弃管理员权限?
简而言之,我想在main()函数中编写代码来删除我不需要的权限(例如,Windows目录上的写访问权限).
我的应用程序需要写入\ ProgramData中可以保护的文件.这只在安装后发生一次.
是否有一个API函数可以获取ACL信息并提示用户授权应用程序访问该文件?换句话说,应用程序会要求Windows提示用户进行确认和授权.这应该以交互方式发生,并允许应用程序在授权访问文件后继续执行.该应用程序以标准用户身份运行,不需要管理员权限.
使用CreateFile()打开该文件.
编辑:我的查询之间存在细微差别,其他人称之为重复.我要求访问一个特定对象,一个文件的权限.其他人要求提升整个过程的特权.无论如何,我感谢所有包含解决方案的回复.
我正在 Windows 中编写一个以管理员身份运行的 C++ 应用程序。但是,在调用该system()
命令时,该命令似乎没有管理员权限(无法在C:\Program Files (x86)\
目录中创建文件)。
如何避免使用CreateProcess?