使用C ++中的RegSetKeySecurity更改注册表项权限

时间:2014-07-07 09:33:54

标签: c++ windows winapi registry

我正在编写一个注册表清理应用程序。 我需要删除一些安全的注册表项值,但由于它们的访问权限,我的删除操作失败。

我了解到可以使用RegSetKeySecurity方法删除注册表访问权限。

但我不确定如何正确设置SECURITY_INFORMATION和PSECURITY_DESCRIPTOR参数以将密钥的安全性设置为用户级别。

如果有人能指导我如何前进,我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

BOOL CreateMyDACL(SECURITY_ATTRIBUTES * pSA, HKEY hKey_CM_DACL)
{

    TCHAR * szSD = TEXT("D:")       
        TEXT("(A;OICI;GA;;;WD)")
        TEXT("(A;OICI;GA;;;SY)");    

     ConvertStringSecurityDescriptorToSecurityDescriptor(
                szSD,
                SDDL_REVISION_1,
                &(pSA->lpSecurityDescriptor),
                NULL);
         RegSetKeySecurity( hKey_CM_DACL, DACL_SECURITY_INFORMATION,  pSA->lpSecurityDescriptor );
}