1

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

4

2 回答 2

2

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

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

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

在这里查看更多:

或者,当使用 时CreateFile,您可以在创建文件时指定所有者,使用SECURITY_DESCRIPTOR,并使其成为用户或他的任何组。

于 2013-01-16T10:14:33.730 回答
2

我最终以使新对象的所有者成为当前用户。

if(GetTokenInformation(hToken,TokenUser,tu,buff.size(),&rw)){    
    if(!SetTokenInformation(hToken,TokenOwner,tu,buff.size())){    
    }    
}
于 2013-01-16T18:07:56.920 回答