我的代码使用Win API函数RegSaveKeyEx将注册表项保存到文件中。但是,在Win Vista或Win 7上运行时,RegSaveKeyEx返回ERROR_PRIVILEGE_NOT_HELD。该代码使用Microsoft在示例函数SetPrivilege中提供的代码启用安全权限SE_BACKUP_NAME。
在Win XP(管理员用户)上,或者如果我在Win Vista或Win 7上禁用UAC,一切正常。如果不升级过程,是否无法在Vista上使用RegSaveKeyEx?
答案 0 :(得分:1)
标准用户没有SE_BACKUP_NAME权限,因此,如果没有提升,RegSaveKeyEx将无法在Vista上运行。
备份是非常“危险”的权限之一 - 它使您能够基本上读取磁盘上的任何内容,无论ACL是什么。
答案 1 :(得分:1)
您可以通过转到以下内容来授予特定用户(或组)的权限...
Control Panel->
Administrative Tools->
Local Security Policy->
Local Policies->
User Rights Assignment-> Back up files and directories (SE_BACKUP_NAME)
...并添加您想要的用户(或组)。或者您可以将用户添加到Backup Operators。
但是,你应该在这里保持谨慎。请参阅迈克尔下面的评论。