我的程序使用创建数据文件的库,存在一个问题,即某些用户会误以“以管理员身份运行”我的程序,结果是某些数据文件是由管理员所有者创建的,普通用户以后无法编辑它。我正在寻找一种“放弃”管理员特权的方式,该特权允许我的程序继续运行,例如无需用户“以管理员身份运行”?我怎样才能做到这一点?

最佳答案

要执行您要求的操作,您需要检测您是否以管理员身份运行,如果是,则创建一个受限制的 token ,然后使用该 token 重新启动程序。

  • http://msdn.microsoft.com/en-us/library/aa446583(VS.85).aspx

  • 获得类似结果的其他方法如下。

    默认情况下,文件所有者是该组成员的管理员组。此设置可以由本地安全策略控制:
  • https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/634.mspx?mfr=true

  • 在这里查看更多:
  • http://technet.microsoft.com/en-us/library/cc961992.aspx

  • 或者,在使用CreateFile时,您可以在创建文件时使用SECURITY_DESCRIPTOR来指定所有者,并将其设置为用户或其任何组。

    关于c++ - C++删除管理员权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14352820/

    10-13 05:07