Я пытаюсь получить список всех локальных групп, использующих Core Services, но он не работает, как я ожидаю. По какой-то причине, когда я использую CSGetLocalIdentityAuthority()
и передаю его CSIdentityQueryCreateForName
, я получаю только те группы, которые имеют членов или являются подгруппой другой группы.
Так что, если я создаю новую группу и не добавляю Участники этого, он не будет возвращен через CSIdentityQuery. Вот мой код Что мне не хватает? Любая помощь или ссылка на ресурс будет полезна.
CSIdentityAuthorityRef auth = CSGetLocalIdentityAuthority();
CSIdentityQueryRef queryRef = CSIdentityQueryCreateForName(kCFAllocatorDefault, CFSTR(""),
kCSIdentityQueryStringBeginsWith,
kCSIdentityClassGroup, auth);
CFErrorRef error;
BOOL success = CSIdentityQueryExecute(queryRef, kCSIdentityQueryIncludeHiddenIdentities, &error);
if(success)
{
CFArrayRef results = CSIdentityQueryCopyResults(queryRef);
long numResults = CFArrayGetCount(results);
for(auto i = 0; i < numResults; ++i)
{
CSIdentityRef obj = (CSIdentityRef)CFArrayGetValueAtIndex(results, i);
CFStringRef fullName = CSIdentityGetFullName(obj);
}
}