LsaEnumerateAccountRights - отчего не читает?
От: Merovingian  
Дата: 25.11.04 10:22
Оценка:
Доброго времени суток!

Код такого типа:


BOOL GrantPrivilege()
{
  
    wchar_t * Admin=L"Administrator";
    NTSTATUS Status;
    LSA_HANDLE hPolicy;
    LSA_UNICODE_STRING SystemName;
    LSA_UNICODE_STRING UserRight;
    PLSA_UNICODE_STRING pSystemName = NULL;
    LSA_OBJECT_ATTRIBUTES ObjAttr;
   
    Status = LsaOpenPolicy(NULL, &ObjAttr, 
                           POLICY_LOOKUP_NAMES|POLICY_CREATE_ACCOUNT,
                           &hPolicy);
    

   PLSA_UNICODE_STRING pPrivs;
   ULONG cPrivs = 0;
     
    LsaEnumerateAccountRights(hPolicy,lookupaccntname(Admin),&pPrivs,&cPrivs);
    wsprintf(bufa,"%u",cPrivs);
    MessageBox(NULL,bufa,"",MB_OK);
    
    LsaClose(hPolicy);

    if (!LSA_SUCCESS(Status))
        return SetLastError(LsaNtStatusToWinError(Status)), FALSE;

    return TRUE;
}


Функция, получающая SID:


SID * lookupaccntname(LPCWSTR username)
{


//wchar_t * GroupName=pBufExt[lResult].lgrpi0_name;
//wchar_t * ReferencedDomainName;
//int cchReferencedDomainName=1000;



wsprintf(bufa,"%S",UserName);

DWORD SidLen=0;
DWORD DomenLen=0;
SID_NAME_USE SidNameUse;
LookupAccountName(NULL,(LPCTSTR)&bufa,NULL,&SidLen,NULL,&DomenLen,&SidNameUse);
SID* sid=(SID*)new char[SidLen];
TCHAR* DomenName=(TCHAR*)new TCHAR[DomenLen];
lResult=LookupAccountName(NULL,(LPCTSTR)&bufa,sid,&SidLen,DomenName,&DomenLen,&SidNameUse);

return(sid);

}


Почему же в LsaEnumerateAccountRights возвращается ноль прав? Помогите, кто чем может
Заранее благодарен за помощь, Still Me, Merovingian

25.11.04 15:00: Перенесено модератором из 'C/C++' — Павел Кузнецов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.