Здравствуйте, Диоксин, Вы писали:
Д>Вы ведь ничего и не меняете:
Д>Д>CSecurityDesc sd;
Д>CDacl dacl;
Д>bool bDefaulted = false;
Д>bool bGetDACL = sd.GetDacl(&dacl,NULL,&bDefaulted);
Д>if(bGetDACL)
Д>{
Д> UINT cAces = dacl.GetAceCount();
Д> for(UINT i = 0;i < cAces;++i)
Д> {
Д> CSid s;
Д> BYTE nAceType;
Д> dacl.GetAclEntry(i,&s,NULL,&nAceType,NULL,NULL);
Д> if(s == Sids::Admins() && ACCESS_DENIED_ACE_TYPE == nAceType)
Д> {
Д> dacl.RemoveAce(i);
Д> break;
Д> }
Д> }
Д>}
Д>sd.SetDacl(dacl,bDefaulted);
Д>sd.MakeSelfRelative();
Д>reg.SetKeySecurity(DACL_SECURITY_INFORMATION, sd.GetPSECURITY_DESCRIPTOR())
Д>
Спасибо большое, но уже подсказали использовать метод, описанный тут —
http://rsdn.ru/forum/winapi/4317879.1.aspxАвтор: ononim
Дата: 23.06.11
вроде пока работает