c++删除管理员权限

c++ drop administrator privileges

本文关键字:权限 管理员 删除 c++      更新时间:2023-10-16

我的程序使用了一个创建数据文件的库,有一个问题,一些用户错误地"以管理员身份运行"我的程序,结果是一些数据文件以administrator所有者创建,普通用户以后无法编辑它。我正在寻找一种"删除"管理员权限的方法,允许我的程序继续运行,例如没有用户"以管理员身份运行"?我该怎么做呢?

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

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

实现类似结果的其他方法如下:

文件的所有者默认设置为administrators组,用于该组的成员。此设置可由本地安全策略控制:

  • 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创建文件时指定所有者,并将其指定为用户或他的任何组。

我最终这样做,使新对象的所有者为当前用户。

if(GetTokenInformation(hToken,TokenUser,tu,buff.size(),&rw)){    
    if(!SetTokenInformation(hToken,TokenOwner,tu,buff.size())){    
    }    
}