2k系统操作注册表时发现某健必须权限问题
察位贴惜没合适结果
说:提高者权限事实
艰苦艰苦艰艰苦苦终msdn找动动
敢独享(哎想某东西藏忘方)
整理出某东西嘿嘿代码
严重建议家东西贴吧
欢迎信探讨 lanren_me@etangcom
开始重新配置注册表权限
LPTSTR lpObjectName
SE_OBJECT_TYPE ObjectType #include
PACL OldDACLNewDACL
PSECURITY_DESCRIPTOR SD
EXPLICIT_ACCESS ea
lpObjectName MACHINE\\SYSTEM\\ControlSet001\\Enum\\Root
ObjectType SE_REGISTRY_KEY
建立空ACL
if (SetEntriesInAcl(0 NULL NULL &OldDACL)ERROR_SUCCESS)
return
if (SetEntriesInAcl(0 NULL NULL &NewDACL)ERROR_SUCCESS)
return
获取现ACL列表OldDACL
if(GetNamedSecurityInfo(lpObjectName ObjectType
DACL_SECURITY_INFORMATION
NULL NULL
&OldDACL
NULL &SD) ERROR_SUCCESS)
Application>MessageBox(指定键存提示MB_OK)
设置户名Everyone指定键操作权结构ea
ZeroMemory(&ea sizeof(EXPLICIT_ACCESS))
BuildExplicitAccessWithName(&ea
Everyone name of trustee
GENERIC_ALL type of access
SET_ACCESS access mode
SUB_CONTAINERS_AND_OBJECTS_INHERIT) 健继承权限 inheritance mode
合结构eaOldDACL权限列表新NewDACL
if(SetEntriesInAcl(1 &ea NULL &NewDACL) ERROR_SUCCESS)
goto Cleanup
新ACL写入指定键
SetNamedSecurityInfo(lpObjectName ObjectType
DACL_SECURITY_INFORMATION
NULL NULL
NewDACL
NULL)
开始操作注册表
恢复注册表权限
BuildExplicitAccessWithName(&ea
Everyone name of trustee
GENERIC_READ type of access
SET_ACCESS access mode
NO_INHERITANCE) 健继承权限 inheritance mode
if(SetEntriesInAcl(1 &ea NULL &OldDACL) ERROR_SUCCESS)
goto Cleanup
旧ACL写入指定键
SetNamedSecurityInfo(lpObjectName ObjectType
DACL_SECURITY_INFORMATION
NULL NULL
OldDACL
NULL)
释放指针
Cleanup
if(SD NULL)
LocalFree((HLOCAL) SD)
if(NewDACL NULL)
LocalFree((HLOCAL) NewDACL)
if(OldDACL NULL)
LocalFree((HLOCAL) OldDACL)
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档